๐ ๏ธ & ๐ / โ¶
โน ๐ async def
โ โก ๐ ๏ธ ๐ข & ๐ฅ ๐ ๐ ๐, ๐ ๏ธ, & ๐.
๐ โ¶
๐;๐ฉโโ๏ธ:
๐ฅ ๐ โ๏ธ ๐ฅ ๐ฅณ ๐ ๐ ๐ฌ ๐ ๐ค ๐ซ โฎ๏ธ await
, ๐:
results = await some_library()
โคด๏ธ, ๐ฃ ๐ โก ๐ ๏ธ ๐ข โฎ๏ธ async def
๐:
@app.get('/')
async def read_results():
results = await some_library()
return results
Note
๐ ๐ช ๐ด โ๏ธ await
๐ ๐ข โ โฎ๏ธ async def
.
๐ฅ ๐ โ๏ธ ๐ฅ ๐ฅณ ๐ ๐ ๐ โฎ๏ธ ๐ณ (๐ฝ, ๐ ๏ธ, ๐ โ๏ธ, โ๏ธ.) & ๐ซ โ๏ธ ๐โ๐ฆบ โ๏ธ await
, (๐ โณ ๐ผ ๐
๐ฝ ๐), โคด๏ธ ๐ฃ ๐ โก ๐ ๏ธ ๐ข ๐, โฎ๏ธ def
, ๐:
@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 ๐ถ ๐ ๐ ๐ฝ ๐งช / ๐ฐ ๐ซ ๐ธ ๐ & ๐ธ (๐ช ๐ ๐).
๐ โ ๐ ๐ ๐ ๐ญ ๐ ๐ ๐ ๐ ๏ธ.
async
& await
¶
๐ โฌ ๐ โ๏ธ ๐ถ ๐๏ธ ๐ ๐ฌ ๐ ๐. ๐ โ โซ๏ธ ๐ ๐ ๐ "๐" ๐ & "โ" ๐ โถ๏ธ๏ธ ๐.
๐โ ๐ค ๐ ๏ธ ๐ ๐ ๐ โ โญ ๐ค ๐ & โ๏ธ ๐โ๐ฆบ ๐ ๐ ๐ โ, ๐ ๐ช ๐ โซ๏ธ ๐:
burgers = await get_burgers(2)
๐ ๐ฅ await
. โซ๏ธ ๐ฌ ๐ ๐ โซ๏ธ โ๏ธ โ โธ get_burgers(2)
๐ ๐จ ๐ฎ ๐ ๐ถ โญ โป ๐ burgers
. โฎ๏ธ ๐, ๐ ๐ ๐ญ ๐ โซ๏ธ ๐ช ๐ถ & ๐ณ ๐ ๐ถ ๐ถ ๐ (๐ ๐จ โ1๏ธโฃ ๐จ).
await
๐ท, โซ๏ธ โ๏ธ ๐ ๐ข ๐ ๐โ๐ฆบ ๐ ๐. ๐, ๐ ๐ฃ โซ๏ธ โฎ๏ธ async def
:
async def get_burgers(number: int):
# Do some asynchronous stuff to create the burgers
return burgers
...โฉ๏ธ def
:
# 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
๐ข, ๐ โ๏ธ "โ" โซ๏ธ. , ๐ ๐ ๐ซ ๐ท:
# This won't work, because get_burgers was defined with: async def
burgers = get_burgers(2)
, ๐ฅ ๐ โ๏ธ ๐ ๐ ๐ฌ ๐ ๐ ๐ ๐ช ๐ค โซ๏ธ โฎ๏ธ await
, ๐ ๐ช โ โก ๐ ๏ธ ๐ข ๐ โ๏ธ โซ๏ธ โฎ๏ธ async def
, ๐:
@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 ๐ โฉ ๐ (โ๏ธ ๐ โญ) ๐ โฎ๏ธ ๐ ๏ธ.
๐¶
๐ โ ๐. ๐ฅ ๐ ๐ฉ def
๐ข โฉ๏ธ async def
, โซ๏ธ ๐ ๐ข ๐งต.
๐ง-๐¶
๐ ๐ช โ๏ธ ๐ ๐ & ๐ง-๐ ๐ซ ๐ ๐ (๐ข ๐ข ๐), ๐ซ ๐ช โ โฎ๏ธ async def
& โฎ๏ธ ๐ def
. โซ๏ธ ๐ ๐ท, & ๐ โ โฎ๏ธ ๐ def
๐ ๐ค ๐ ๐ข ๐งต (โช๏ธโก๏ธ ๐งต) โฉ๏ธ โ "โ".
๐ ๐ ๐ข¶
๐ ๐ ๐ ๐ข ๐ ๐ ๐ค ๐ ๐ช โ โฎ๏ธ ๐ def
โ๏ธ async def
& FastAPI ๐ ๐ซ ๐ ๐ ๐ ๐ค โซ๏ธ.
๐ ๐ ๐ข ๐ FastAPI ๐ค ๐: โก ๐ ๏ธ ๐ข & ๐.
๐ฅ ๐ ๐ ๐ข ๐ ๐ข โฎ๏ธ def
, โซ๏ธ ๐ ๐ค ๐ (๐ โ โซ๏ธ ๐ ๐), ๐ซ ๐งต, ๐ฅ ๐ข โ โฎ๏ธ async def
โคด๏ธ ๐ ๐ await
๐ ๐ข ๐โ ๐ ๐ค โซ๏ธ ๐ ๐.
๐, ๐ ๐ถ ๐ก โน ๐ ๐ ๐ฒ โ ๐ฅ ๐ ๐ ๐ ๐ซ.
โช, ๐ ๐ ๐ โฎ๏ธ ๐ โช๏ธโก๏ธ ๐ ๐: ๐ โ.