# ๐ ๏ธ & ๐ / โ
โน ๐ `async def` โ *โก ๐ ๏ธ ๐ข* & ๐ฅ ๐ ๐ ๐, ๐ ๏ธ, & ๐.
## ๐ โ
๐;๐ฉโโ๏ธ:
๐ฅ ๐ โ๏ธ ๐ฅ ๐ฅณ ๐ ๐ ๐ฌ ๐ ๐ค ๐ซ โฎ๏ธ `await`, ๐:
```Python
results = await some_library()
```
โคด๏ธ, ๐ฃ ๐ *โก ๐ ๏ธ ๐ข* โฎ๏ธ `async def` ๐:
```Python hl_lines="2"
@app.get('/')
async def read_results():
results = await some_library()
return results
```
!!! note
๐ ๐ช ๐ด โ๏ธ `await` ๐ ๐ข โ โฎ๏ธ `async def`.
---
๐ฅ ๐ โ๏ธ ๐ฅ ๐ฅณ ๐ ๐ ๐ โฎ๏ธ ๐ณ (๐ฝ, ๐ ๏ธ, ๐ โ๏ธ, โ๏ธ.) & ๐ซ โ๏ธ ๐โ๐ฆบ โ๏ธ `await`, (๐ โณ ๐ผ ๐
๐ฝ ๐), โคด๏ธ ๐ฃ ๐ *โก ๐ ๏ธ ๐ข* ๐, โฎ๏ธ `def`, ๐:
```Python hl_lines="2"
@app.get('/')
def results():
results = some_library()
return results
```
---
๐ฅ ๐ ๐ธ (๐ซ) ๐ซ โ๏ธ ๐ โฎ๏ธ ๐ณ ๐ & โ โซ๏ธ ๐จ, โ๏ธ `async def`.
---
๐ฅ ๐ ๐ซ ๐ญ, โ๏ธ ๐ `def`.
---
**๐**: ๐ ๐ช ๐ `def` & `async def` ๐ *โก ๐ ๏ธ ๐ข* ๐
๐ ๐ช & ๐ฌ ๐ 1๏ธโฃ โ๏ธ ๐ ๐ ๐. FastAPI ๐ โถ๏ธ๏ธ ๐ โฎ๏ธ ๐ซ.
๐, ๐ ๐ผ ๐, FastAPI ๐ ๐ท ๐ & ๐ถ โฉ.
โ๏ธ ๐ ๐ถ ๐, โซ๏ธ ๐ ๐ช ๐ญ ๐ ๏ธ.
## ๐ก โน
๐ โฌ ๐ โ๏ธ ๐โ๐ฆบ **"๐ ๐"** โ๏ธ ๐ณ ๐ค **"๐"**, โฎ๏ธ **`async` & `await`** โ.
โก๏ธ ๐ ๐ ๐ค ๐ ๐ ๐:
* **๐ ๐**
* **`async` & `await`**
* **๐**
## ๐ ๐
๐ ๐ โ ๐ ๐ช๐ธ ๐ถ โ๏ธ ๐ ๐ฌ ๐ป / ๐ ๐ถ ๐ โ ๐, โซ๏ธ ๐ถ ๐ โ๏ธ โ *๐ณ ๐* ๐ ๐ฑ ๐. โก๏ธ ๐ฌ ๐ *๐ณ ๐* ๐ค "๐-๐" ๐ถ.
, โฎ๏ธ ๐ ๐ฐ, ๐ป ๐ช ๐ถ & ๐ ๐ท, โช "๐-๐" ๐ถ ๐.
โคด๏ธ ๐ป / ๐ ๐ถ ๐ ๐ ๐ ๐ ๐ฐ โซ๏ธ โ๏ธ ๐ค โฉ๏ธ โซ๏ธ โ ๐, โ๏ธ ๐โ โซ๏ธ ๐ถ ๐ ๐ ๐ท โซ๏ธ โ๏ธ ๐ โ. & โซ๏ธ ๐ถ ๐ ๐ ๐ฅ ๐ ๐ โซ๏ธ โ โ๏ธ โช ๐, ๐คธ โซ๏ธโ โซ๏ธ โ๏ธ.
โญ, โซ๏ธ ๐ถ โ ๐ฅ ๐ ๐ (โก๏ธ ๐ฌ, ๐ "๐-๐" ๐ถ) & ๐ฃ โซ๏ธโ โซ๏ธ โ๏ธ โฎ๏ธ โซ๏ธ.
๐ "โ ๐ณ ๐" ๐ ๐ ๐ค/๐
พ ๐ ๏ธ ๐ ๐ถ "๐" (๐ฌ ๐
๐น & ๐พ ๐พ), ๐ โ:
* ๐ โช๏ธโก๏ธ ๐ฉโ๐ป ๐จ ๐ ๐ธ
* ๐ ๐จ ๐ ๐ ๐จ ๐ฉโ๐ป ๐ ๐ธ
* ๐ ๐ ๐พ โ โ๏ธ & ๐ค ๐ ๐
* ๐ ๐ ๐ ๐ค โ๏ธ โ ๐พ
* ๐ฐ ๐ ๏ธ ๐ ๏ธ
* ๐ฝ ๐ ๏ธ ๐
* ๐ฝ ๐ข ๐จ ๐
* โ๏ธ.
๐ ๏ธ ๐ฐ ๐ด โด๏ธ โ ๐ค/๐
พ ๐ ๏ธ, ๐ซ ๐ค ๐ซ "๐ค/๐
พ ๐" ๐ ๏ธ.
โซ๏ธ ๐ค "๐" โฉ๏ธ ๐ป / ๐ ๐ซ โ๏ธ "๐" โฎ๏ธ ๐ ๐, โ โ ๐ ๐ ๐ ๐, โช ๐จ ๐ณ, ๐ช โ ๐ ๐ & ๐ฃ ๐ท.
โฉ๏ธ ๐, ๐โโ "๐" โ๏ธ, ๐ ๐, ๐ ๐ช โ โธ ๐ฅ ๐ (โฒ) ๐ป / ๐ ๐ โซ๏ธโ โซ๏ธ ๐ถ, & โคด๏ธ ๐ ๐ โ ๐ & ๐ฃ ๐ท โฎ๏ธ ๐ซ.
"๐" (๐ฝ "๐") ๐ซ ๐ โ๏ธ โ "๐", โฉ๏ธ ๐ป / ๐ โฉ ๐ ๐ถ ๐ โญ ๐ ๐ ๐, ๐ฅ ๐ ๐ ๐ โ.
### ๐ ๏ธ & ๐
๐ ๐ญ **๐** ๐ ๐ฌ ๐ ๐ฃ ๐ค **"๐ ๏ธ"**. โซ๏ธ ๐ โช๏ธโก๏ธ **"๐"**.
**๐ ๏ธ** & **๐** ๐ฏโโ๏ธ ๐ "๐ ๐ ๐ฅ ๐
โ๏ธ ๐ ๐ ๐ฐ".
โ๏ธ โน ๐ *๐ ๏ธ* & *๐* ๐.
๐ ๐บ, ๐ ๐ ๐ ๐ ๐:
### ๐ ๏ธ ๐
๐ ๐ถ โฎ๏ธ ๐ ๐ฅฐ ๐ค โฉ ๐ฅ, ๐ ๐ง โธ โช ๐ง โ โ โช๏ธโก๏ธ ๐ซ๐ซ ๐ช ๐. ๐ถ
โคด๏ธ โซ๏ธ ๐ ๐, ๐ ๐ฅ ๐ โ 2๏ธโฃ ๐ถ ๐ ๐ ๐ ๐ฅฐ & ๐. ๐ถ ๐ถ
๐ง ๐ฌ ๐ณ ๐ณ ๐จโ๐ณ ๐ซ ๐ญ ๐ซ โ๏ธ ๐ ๐ ๐ (โ๏ธ ๐ซ โณ ๐ ๐ โฎ๏ธ ๐ฉโ๐ป).
๐ ๐ธ. ๐ถ
๐ง ๐ค ๐ ๐ข ๐ ๐.
โช ๐ โ, ๐ ๐ถ โฎ๏ธ ๐ ๐ฅฐ & โ ๐, ๐ ๐ง & ๐ฌ โฎ๏ธ ๐ ๐ฅฐ ๐ ๐ฐ (๐ ๐ ๐ถ ๐ & โ ๐ฐ ๐).
๐ ๐ ๐ โฎ๏ธ ๐ ๐ฅฐ, โช ๐ โ ๐, ๐ ๐ช ๐ธ ๐ ๐ฐ ๐ฎ โ ๐, ๐จ & ๐ ๐ ๐ฅฐ ๐ถ ๐ถ ๐ถ.
โช โ & ๐ฌ ๐ ๐ฅฐ, โช๏ธโก๏ธ ๐ฐ ๐ฐ, ๐ โ
๐ข ๐ฅ ๐ โฒ ๐ ๐ฅ โซ๏ธ ๐ ๐ โช.
โคด๏ธ โ, โซ๏ธ ๐ ๐ ๐. ๐ ๐ถ โฒ, ๐ค ๐ ๐ & ๐ ๐ ๐.
๐ & ๐ ๐ฅฐ ๐ด ๐ & โ๏ธ ๐ ๐ฐ. ๐ถ
!!! info
๐น ๐ผ ๐ฏ ๐. ๐ถ
---
๐ ๐ ๐ป / ๐ ๐ถ ๐ ๐.
โช ๐ โธ, ๐ โฝ ๐ถ, โ ๐ ๐, ๐ซ ๐จ ๐ณ ๐ถ "๐". โ๏ธ โธ โฉ โฉ๏ธ ๐ง ๐ด โ โ (๐ซ ๐ ๐ซ), ๐ ๐.
โคด๏ธ, ๐โ โซ๏ธ ๐ ๐, ๐ โ "๐" ๐ท, ๐ ๐ ๏ธ ๐ฃ, ๐ญ โซ๏ธโ ๐ ๐, ๐ค ๐ ๐ฅฐ โ, ๐ธ, โ
๐ ๐ ๐ค โ ๐ต โ๏ธ ๐ณ, โ
๐ ๐ ๐ โ, โ
๐ โ โ๏ธ โ ๐ฌ, โ๏ธ.
โ๏ธ โคด๏ธ, โ๏ธ ๐ ๐ซ โ๏ธ ๐ ๐, ๐ ๐ท โฎ๏ธ ๐ง "๐ โธ" โธ, โฉ๏ธ ๐ โ๏ธ โ ๐ถ ๐ ๐ ๐.
โ๏ธ ๐ ๐ถ โ๏ธ โช๏ธโก๏ธ โฒ & ๐ง ๐ โฎ๏ธ ๐ข ๐ ๐, ๐ ๐ช ๐ ๐ถ ๐ ๐ ๐ ๐ฅฐ, & "๐ท" ๐ถ ๐ถ ๐ ๐. โคด๏ธ ๐ ๐ ๐จ ๐ณ ๐ถ "๐" ๐ โฎ๏ธ ๐ ๐ฅฐ ๐ถ.
โคด๏ธ ๐ง ๐ถ ๐ฌ "๐ค ๐ โฎ๏ธ ๐จ ๐" ๐ฎ ๐ ๐ข ๐ โฒ ๐ฅ, โ๏ธ ๐ ๐ซ ๐ฆ ๐ ๐ โช ๐โ ๐ฅ ๐ข ๐ ๐ ๐ ๐ข. ๐ ๐ญ ๐
โโ 1๏ธโฃ ๐ ๐ ๐ ๐ โฉ๏ธ ๐ โ๏ธ ๐ข ๐ ๐, & ๐ซ โ๏ธ ๐ซ.
๐ โ ๐ ๐ฅฐ ๐ ๐ (๐ โฎ๏ธ ๐ท ๐ถ / ๐ โ ๐ ๏ธ ๐ถ), ๐ ๐ & ๐ฌ ๐ ๐ ๐ ๐ โธ.
โคด๏ธ ๐ ๐ถ โฒ ๐ถ, โถ๏ธ ๐ ๐ ๐ ๐ ๐ถ, โ ๐, ๐ฌ ๐ & โ ๐ซ ๐. ๐ ๐ ๐ ๐ / ๐ ๐ โฎ๏ธ โฒ โน. ๐ ๐, โ ๐ ๐, "๐ด ๐" ๐ถ ๐ถ, โ๏ธ โฎ๏ธ 1๏ธโฃ "๐ค ๐" ๐ โน.
### ๐ ๐
๐ โก๏ธ ๐ ๐ซ โ๐ซ ๐ซ "๐ ๏ธ ๐", โ๏ธ "๐ ๐".
๐ ๐ถ โฎ๏ธ ๐ ๐ฅฐ ๐ค ๐ โฉ ๐ฅ.
๐ ๐ง โธ โช ๐ (โก๏ธ ๐ฌ 8๏ธโฃ) ๐ง ๐ ๐ ๐ฐ ๐ณ โ โ โช๏ธโก๏ธ ๐ซ๐ซ ๐ช ๐.
๐ฑ โญ ๐ โ ๐ซ ๐ ๐ โญ ๐ โฒ โฉ๏ธ ๐ 8๏ธโฃ ๐ง ๐ถ & ๐ ๐ โถ๏ธ๏ธ โ๏ธ โญ ๐โโ โญ โ.
โคด๏ธ โซ๏ธ ๐ ๐ ๐, ๐ ๐ฅ ๐ โ 2๏ธโฃ ๐ถ ๐ ๐ ๐ ๐ฅฐ & ๐.
๐ ๐ธ ๐ถ.
๐ง ๐ถ ๐จโ๐ณ.
๐ โ, ๐ง ๐ช โฒ ๐ถ, ๐ ๐
โโ 1๏ธโฃ ๐ โ ๐ ๐ โญ ๐, ๐ค ๐
โโ ๐ข ๐.
๐ & ๐ ๐ฅฐ ๐ฉ ๐ซ โก๏ธ ๐ ๐ค ๐ช ๐ & โ ๐ ๐ ๐โ ๐ซ ๐ฌ, ๐ ๐ซ๐ ๐ธ ๐ ๐ ๐ฅฐ. ๐ถ
๐ "๐" ๐ท, ๐ "๐" โฎ๏ธ ๐ง/๐ณ ๐ถ ๐ถ. ๐ โ๏ธ โ ๐ถ & ๐ค โ ๐ ๐ ๐ง/๐ณ ๐ถ ๐ถ ๐ ๐ & ๐ค ๐ซ ๐, โ๏ธ โช, ๐ฑ ๐ ๐ช โ ๐ซ.
โคด๏ธ ๐ ๐ง/๐ณ ๐ถ ๐ถ ๐ ๐ ๐ โฎ๏ธ ๐ ๐, โฎ๏ธ ๐ ๐ฐ โ ๐ถ ๐ค ๐ช โฒ.
๐ โ ๐ ๐ & ๐ถ ๐ โฎ๏ธ ๐ ๐ฅฐ.
๐ ๐ด ๐ซ, & ๐ ๐จ. โน
๐ค ๐ซ ๐
๐ฌ โ๏ธ ๐ ๐
๐ฐ ๐ธ โ ๐ถ ๐ช โฒ. ๐ถ
!!! info
๐น ๐ผ ๐ฏ ๐. ๐ถ
---
๐ ๐ ๐ ๐, ๐ ๐ป / ๐ ๐ถ โฎ๏ธ 2๏ธโฃ ๐น (๐ & ๐ ๐ฅฐ), ๐ฏโโ๏ธ โ ๐ถ & ๐ก ๐ซ ๐ ๐ถ "โ ๐ โฒ" ๐ถ ๐ ๐ฐ.
โฉ ๐ฅ ๐ช โ๏ธ 8๏ธโฃ ๐น (๐ง/๐ณ). โช ๐ ๏ธ ๐ ๐ช ๐ช โ๏ธ โ๏ธ ๐ด 2๏ธโฃ (1๏ธโฃ ๐ง & 1๏ธโฃ ๐ณ).
โ๏ธ, ๐ ๐ก ๐ซ ๐. ๐ถ
---
๐ ๐ ๐ ๐ ๐ ๐. ๐ถ
๐
"๐ฐ ๐จโโคโ๐จ" ๐ผ ๐, ๐ ๐ฆ.
๐ โณ, ๐ ๐ฆ โ๏ธ ๐ ๐ง ๐ถ ๐ถ ๐ถ ๐ถ ๐ถ ๐ถ ๐ถ ๐ถ & ๐ฆ โธ ๐ถ ๐ถ ๐ถ ๐ถ ๐ถ ๐ถ ๐ถ ๐ถ.
๐ ๐ง ๐จ ๐ ๐ท โฎ๏ธ 1๏ธโฃ ๐ฉโ๐ป โฎ๏ธ ๐ ๐ถ ๐ถ ๐ถ.
& ๐ โ๏ธ โ ๐ถ โธ ๐ ๐ฐ โ๏ธ ๐ ๐ธ ๐ ๐.
๐ ๐ฒ ๐ซ๐ ๐ โ ๐ ๐ฅฐ ๐ถ โฎ๏ธ ๐ ๐ท ๐ฆ ๐ถ.
### ๐ ๐
๐ ๐ "โฉ ๐ฅ ๐ โฎ๏ธ ๐ ๐ฅฐ", ๐ค ๐ โ ๐ถ, โซ๏ธ โ ๐ ๐
๐ โ๏ธ ๐ ๏ธ โ๏ธ โธ ๐ถ ๐ถ.
๐ ๐ผ ๐
๐ธ ๐ธ.
๐, ๐ ๐ฉโ๐ป, โ๏ธ ๐ ๐ฝ โ ๐ถ ๐ซ ๐ซ--๐ ๐ ๐จ ๐ซ ๐จ.
& โคด๏ธ โ ๐ถ ๐ ๐จ ๐ ๐.
๐ "โ" ๐ถ โ โฒ, โ๏ธ, โ โซ๏ธ ๐, โซ๏ธ ๐ โ ๐.
๐ โซ๏ธโ โซ๏ธ โ ๐ ๐ โ๏ธ ๐ โธ ๐ถ ๐ถ ๐ ๐ธ ๐.
๐ ๐ ๐ โซ๏ธโ โ โณ ๐ (โ๏ธ โณ ๐ซ ๐) & ๐ ๐ช ๐ถ ๐ ๏ธ ๐ช๐ธ.
& ๐ ๐ ๐ ๐ญ ๐ ๐ค โฎ๏ธ **FastAPI**.
& ๐ ๐ช โ๏ธ ๐ & ๐ ๐ ๐ฐ, ๐ ๐ค โ ๐ญ ๐ ๐
๐ฏ โณ ๐ ๏ธ & ๐ ๐ท๐ช โฎ๏ธ ๐ถ, โ โ ๐ช๐ธ ๐ ๐
ฑ (๐ ๐ ๐).
### ๐ ๏ธ ๐ ๐ ๐ โ
๐ โ ๐ ๐ซ ๐ ๐.
๐ ๏ธ ๐ ๐ ๐. & โซ๏ธ ๐ป ๐ **๐ฏ** ๐ ๐ ๐ ๐ โ. โฉ๏ธ ๐, โซ๏ธ ๐ ๐ ๐ ๐ ๐ ๐ธ ๐ธ ๐ ๏ธ. โ๏ธ ๐ซ ๐.
, โ ๐ ๐
, ๐ ๐ ๐ ๐:
> ๐ โ๏ธ ๐งน ๐ฆ, ๐ฉ ๐ .
*๐, ๐ ๐ ๐*.
---
๐ค ๐
โโ โ ๐ถ ๐, ๐ ๐ท ๐จ, ๐ ๐ ๐ฅ ๐ .
๐ ๐ช โ๏ธ ๐ ๐ ๐ผ, ๐ฅ ๐ ๐งโโ, โคด๏ธ ๐จโ๐ณ, โ๏ธ ๐ ๐ซ โ ๐ถ ๐ณ, ๐งน & ๐งน, ๐ ๐ซ๐ ๐ ๐ณ.
โซ๏ธ ๐ โ ๐ ๐ธ ๐ฐ ๐ โฎ๏ธ โ๏ธ ๐ต ๐ (๐ ๏ธ) & ๐ ๐ โ๏ธ โ ๐ ๐ธ ๐ท.
โ๏ธ ๐ ๐ผ, ๐ฅ ๐ ๐ช โ๏ธ 8๏ธโฃ ๐ฐ-๐ง/๐ณ/๐-๐งน, & ๐ 1๏ธโฃ ๐ซ (โ ๐) ๐ช โ ๐ ๐ ๐งน โซ๏ธ, ๐ ๐ช ๐ ๐ท **๐**, โฎ๏ธ โ โน, & ๐ ๐
๐.
๐ ๐, ๐ 1๏ธโฃ ๐งน (๐ ๐) ๐ ๐น, ๐คธ ๐ซ ๐ ๐จโ๐ญ.
& ๐ ๐ ๏ธ ๐ฐ โ โ ๐ท (โฉ๏ธ โ), & ๐ท ๐ป โ ๐ฝ, ๐ซ ๐ค ๐ซ โ "๐ฝ ๐".
---
โ ๐ผ ๐ฝ ๐ ๐ ๏ธ ๐ ๐ ๐ ๐ ๐งช ๐ญ.
๐ผ:
* **๐ง** โ๏ธ **๐ผ ๐ญ**.
* **๐ป ๐**: ๐ผ โ ๐ฏ ๐
, ๐ ๐
โ๏ธ 3๏ธโฃ ๐ฒ / ๐จ, ๐ญ ๐ ๐ ๐ ๐ป ๐ณ ๐ ๐ ๐
, ๐ ๐ ๐ฐ.
* **๐ฐ ๐ซ**: โซ๏ธ ๐ ๐ ๐ "โ" & "๐ผ" โ. ๐ญ ๐ฆ ๐ โฎ๏ธ ๐ข & โ ๐ ๐ซ ๐ฏโโ๏ธ ๐ ๐ฐ.
* **โฌ ๐ซ**: ๐ ๐ง-๐ ๐ฐ ๐ซ,, ๐ โ. โซ๏ธ ๐ ๐ค ๐ซ ๐ ๐ ๐ข โ, โ๏ธ ๐ฆ โ ๐ซ, & ๐ ๐ผ, ๐ โ๏ธ ๐ ๐น ๐ & / โ๏ธ โ๏ธ ๐ ๐ท.
### ๐ ๏ธ โ ๐: ๐ธ โ ๐ฐ ๐ซ
โฎ๏ธ **FastAPI** ๐ ๐ช โ ๐ ๐ ๏ธ ๐ ๐ถ โ ๐ธ ๐ ๏ธ (๐ ๐ ๐งฒ โณ).
โ๏ธ ๐ ๐ช ๐ ๐ฐ ๐ & ๐พ (โ๏ธ ๐ ๐ ๏ธ ๐โโ ๐) **๐ฝ ๐** โ ๐ ๐ ๐ฐ ๐ซ โ๏ธ.
๐, โ ๐
๐ ๐ ๐ ๐ ๐ช๐ธ **๐ฝ ๐งช**, ๐ฐ ๐ซ & โด๏ธ โฌ ๐ซ, โ FastAPI ๐ถ ๐ ๐ ๐ฝ ๐งช / ๐ฐ ๐ซ ๐ธ ๐ & ๐ธ (๐ช ๐ ๐).
๐ โ ๐ ๐ ๐ ๐ญ ๐ ๐ ๐ [๐ ๏ธ](deployment/index.md){.internal-link target=_blank}.
## `async` & `await`
๐ โฌ ๐ โ๏ธ ๐ถ ๐๏ธ ๐ ๐ฌ ๐ ๐. ๐ โ โซ๏ธ ๐ ๐ ๐ "๐" ๐ & "โ" ๐ โถ๏ธ๏ธ ๐.
๐โ ๐ค ๐ ๏ธ ๐ ๐ ๐ โ โญ ๐ค ๐ & โ๏ธ ๐โ๐ฆบ ๐ ๐ ๐ โ, ๐ ๐ช ๐ โซ๏ธ ๐:
```Python
burgers = await get_burgers(2)
```
๐ ๐ฅ `await`. โซ๏ธ ๐ฌ ๐ ๐ โซ๏ธ โ๏ธ โ โธ `get_burgers(2)` ๐ ๐จ ๐ฎ ๐ ๐ถ โญ โป ๐ `burgers`. โฎ๏ธ ๐, ๐ ๐ ๐ญ ๐ โซ๏ธ ๐ช ๐ถ & ๐ณ ๐ ๐ถ ๐ถ ๐ (๐ ๐จ โ1๏ธโฃ ๐จ).
`await` ๐ท, โซ๏ธ โ๏ธ ๐ ๐ข ๐ ๐โ๐ฆบ ๐ ๐. ๐, ๐ ๐ฃ โซ๏ธ โฎ๏ธ `async def`:
```Python hl_lines="1"
async def get_burgers(number: int):
# Do some asynchronous stuff to create the burgers
return burgers
```
...โฉ๏ธ `def`:
```Python hl_lines="2"
# This is not asynchronous
def get_sequential_burgers(number: int):
# Do some sequential stuff to create the burgers
return burgers
```
โฎ๏ธ `async def`, ๐ ๐ญ ๐, ๐ ๐ ๐ข, โซ๏ธ โ๏ธ ๐ค `await` ๐งฌ, & ๐ โซ๏ธ ๐ช "โธ" โธ ๐ ๏ธ ๐ ๐ข & ๐ถ ๐ณ ๐ ๐ถ โญ ๐ ๐.
๐โ ๐ ๐ ๐ค `async def` ๐ข, ๐ โ๏ธ "โ" โซ๏ธ. , ๐ ๐ ๐ซ ๐ท:
```Python
# This won't work, because get_burgers was defined with: async def
burgers = get_burgers(2)
```
---
, ๐ฅ ๐ โ๏ธ ๐ ๐ ๐ฌ ๐ ๐ ๐ ๐ช ๐ค โซ๏ธ โฎ๏ธ `await`, ๐ ๐ช โ *โก ๐ ๏ธ ๐ข* ๐ โ๏ธ โซ๏ธ โฎ๏ธ `async def`, ๐:
```Python hl_lines="2-3"
@app.get('/burgers')
async def read_burgers():
burgers = await get_burgers(2)
return burgers
```
### ๐
๐ก โน
๐ ๐ช โ๏ธ ๐ ๐ `await` ๐ช ๐ด โ๏ธ ๐ ๐ข ๐ฌ โฎ๏ธ `async def`.
โ๏ธ ๐ ๐ฐ, ๐ข ๐ฌ โฎ๏ธ `async def` โ๏ธ "โ". , ๐ข โฎ๏ธ `async def` ๐ช ๐ด ๐ค ๐ ๐ข ๐ฌ โฎ๏ธ `async def` ๐โโ๏ธ.
, ๐ ๐ฅ & ๐, โ ๐ ๐ค ๐ฅ `async` ๐ข โ
๐ฅ ๐ ๐ท โฎ๏ธ **FastAPI** ๐ ๐ซ โ๏ธ ๐ ๐ ๐, โฉ๏ธ ๐ "๐ฅ" ๐ข ๐ ๐ *โก ๐ ๏ธ ๐ข*, & FastAPI ๐ ๐ญ โ โถ๏ธ๏ธ ๐.
โ๏ธ ๐ฅ ๐ ๐ โ๏ธ `async` / `await` ๐ต FastAPI, ๐ ๐ช โซ๏ธ ๐.
### โ ๐ ๐ ๐ ๐
๐ (& **FastAPI**) โ๏ธ ๐ AnyIO, โ โ โซ๏ธ ๐ โฎ๏ธ ๐ฏโโ๏ธ ๐ ๐ฉ ๐ โณ & ๐ป.
๐ฏ, ๐ ๐ช ๐ โ๏ธ AnyIO ๐ ๐ง ๐ ๏ธ โ๏ธ ๐ผ ๐ ๐ ๐
๐ง โ ๐ ๐ ๐.
& ๐ฅ ๐ ๐ซ โ๏ธ FastAPI, ๐ ๐ช โ ๐ ๐ ๐ ๐ธ โฎ๏ธ AnyIO ๐ ๐ & ๐ค ๐ฎ ๐ฐ (โ
*๐ ๐ ๏ธ*).
### ๐ ๐จ ๐ ๐
๐ ๐ โ๏ธ `async` & `await` ๐ถ ๐ ๐ช๐ธ.
โ๏ธ โซ๏ธ โ ๐ท โฎ๏ธ ๐ ๐ ๐ โฉ.
๐ ๐ โ (โ๏ธ ๐ ๐) ๐ โณ ๐ โฌ ๐ธ (๐ฅ & โณ).
โ๏ธ โญ ๐, ๐ ๐ ๐ ๐ ๐ & โ .
โฎ๏ธ โฌ ๐, ๐ ๐ช โ๏ธ โ๏ธ ๐งต โ๏ธ ๐. โ๏ธ ๐ ๐ ๐ ๐ ๐ค, โน, & ๐ญ ๐.
โฎ๏ธ โฌ โณ / ๐ฅ ๐ธ, ๐ ๐ โ๏ธ โ๏ธ "โฒ". โ โ๏ธ โฒ ๐ฅ๐.
## ๐
**๐** ๐ถ ๐ โ ๐ ๐จ `async def` ๐ข. ๐ ๐ญ ๐ โซ๏ธ ๐ณ ๐ ๐ข ๐ โซ๏ธ ๐ช โถ๏ธ & ๐ โซ๏ธ ๐ ๐ โ, โ๏ธ ๐ โซ๏ธ 5๏ธโฃ๐ โธ โธ ๐ ๐โโ๏ธ, ๐โ ๐ค `await` ๐ โซ๏ธ.
โ๏ธ ๐ ๐ ๐ ๏ธ โ๏ธ ๐ ๐ โฎ๏ธ `async` & `await` ๐ ๐ฐ ๐ฌ โ๏ธ "๐". โซ๏ธ โญ ๐ ๐ โ ๐ถ, "๐".
## ๐
โก๏ธ ๐ ๐ ๐ค โช๏ธโก๏ธ ๐:
> ๐ โฌ ๐ โ๏ธ ๐โ๐ฆบ **"๐ ๐"** โ๏ธ ๐ณ ๐ค **"๐"**, โฎ๏ธ **`async` & `await`** โ.
๐ ๐ โ ๐
๐ ๐. ๐ถ
๐ ๐ โซ๏ธโ ๐๏ธ FastAPI (๐ ๐) & โซ๏ธโ โ โซ๏ธ โ๏ธ โ
๐ ๐ญ.
## ๐ถ ๐ก โน
!!! warning
๐ ๐ช ๐ฒ ๐ถ ๐.
๐ ๐ถ ๐ก โน โ **FastAPI** ๐ท ๐.
๐ฅ ๐ โ๏ธ ๐ก ๐ก (๐ถ-๐, ๐งต, ๐ซ, โ๏ธ.) & ๐ ๐ โ FastAPI ๐ต `async def` ๐ ๐ `def`, ๐ถ โคด๏ธ.
### โก ๐ ๏ธ ๐ข
๐โ ๐ ๐ฃ *โก ๐ ๏ธ ๐ข* โฎ๏ธ ๐ `def` โฉ๏ธ `async def`, โซ๏ธ ๐ ๐ข ๐งต ๐ โคด๏ธ โ, โฉ๏ธ โ ๐ค ๐ (โซ๏ธ ๐ ๐ซ ๐ฝ).
๐ฅ ๐ ๐ โช๏ธโก๏ธ โ1๏ธโฃ ๐ ๐ ๏ธ ๐ ๐จ ๐ซ ๐ท ๐ ๐ฌ ๐ & ๐ โ๏ธ โ ๐ ๐-๐ด *โก ๐ ๏ธ ๐ข* โฎ๏ธ โ
`def` ๐คช ๐ญ ๐ (๐ 1๏ธโฃ0๏ธโฃ0๏ธโฃ ๐), ๐ ๐ ๐ **FastAPI** โญ ๐ ๐. ๐ซ ๐ผ, โซ๏ธ ๐ป โ๏ธ `async def` ๐ฅ ๐ *โก ๐ ๏ธ ๐ข* โ๏ธ ๐ ๐ ๐ญ ๐ง ๐ค/๐
พ.
, ๐ฏโโ๏ธ โ , ๐ค ๐ **FastAPI** ๐ [โฉ](/#performance){.internal-link target=_blank} ๐ (โ๏ธ ๐ โญ) ๐ โฎ๏ธ ๐ ๏ธ.
### ๐
๐ โ [๐](./tutorial/dependencies/index.md){.internal-link target=_blank}. ๐ฅ ๐ ๐ฉ `def` ๐ข โฉ๏ธ `async def`, โซ๏ธ ๐ ๐ข ๐งต.
### ๐ง-๐
๐ ๐ช โ๏ธ ๐ ๐ & [๐ง-๐](./tutorial/dependencies/sub-dependencies.md){.internal-link target=_blank} ๐ซ ๐ ๐ (๐ข ๐ข ๐), ๐ซ ๐ช โ โฎ๏ธ `async def` & โฎ๏ธ ๐ `def`. โซ๏ธ ๐ ๐ท, & ๐ โ โฎ๏ธ ๐ `def` ๐ ๐ค ๐ ๐ข ๐งต (โช๏ธโก๏ธ ๐งต) โฉ๏ธ โ "โ".
### ๐ ๐ ๐ข
๐ ๐ ๐ ๐ข ๐ ๐ ๐ค ๐ ๐ช โ โฎ๏ธ ๐ `def` โ๏ธ `async def` & FastAPI ๐ ๐ซ ๐ ๐ ๐ ๐ค โซ๏ธ.
๐ ๐
๐ข ๐ FastAPI ๐ค ๐: *โก ๐ ๏ธ ๐ข* & ๐.
๐ฅ ๐ ๐ ๐ข ๐ ๐ข โฎ๏ธ `def`, โซ๏ธ ๐ ๐ค ๐ (๐ โ โซ๏ธ ๐ ๐), ๐ซ ๐งต, ๐ฅ ๐ข โ โฎ๏ธ `async def` โคด๏ธ ๐ ๐ `await` ๐ ๐ข ๐โ ๐ ๐ค โซ๏ธ ๐ ๐.
---
๐, ๐ ๐ถ ๐ก โน ๐ ๐ ๐ฒ โ ๐ฅ ๐ ๐ ๐ ๐ซ.
โช, ๐ ๐ ๐ โฎ๏ธ ๐ โช๏ธโก๏ธ ๐ ๐: ๐ โ.