前言
有关路径操作函数的 async def 语法以及异步代码、并发和并行的一些背景知识
async 和 await 关键字
如果你正在使用第三方库,它们会告诉你使用 await 关键字来调用它们,就像这样:
results = await some_library()
然后,通过 async def 声明你的 路径操作函数:
@app.get('/')
async def read_results():
results = await some_library()
return results
你只能在被 async def 创建的函数内使用 await
如果你正在使用一个第三方库和某些组件(比如:数据库、API、文件系统...)进行通信,第三方库又不支持使用 await (目前大多数数据库三方库都是这样),这种情况你可以像平常那样使用 def 声明一个路径操作函数,就像这样:
@app.get('/')
def results():
results = some_library()
return results
如果你的应用程序不需要与其他任何东西通信而等待其响应,请使用 async def
。
如果你不清楚,使用 def 就好.
注意:你可以根据需要在路径操作函数中混合使用 def 和 async def,并使用最适合你的方式去定义每个函数。FastAPI 将为他们做正确的事情。
无论如何,在上述任何情况下,FastAPI 仍将异步工作,速度也非常快。
但是,通过遵循上述步骤,它将能够进行一些性能优化。
技术细节
Python 的现代版本支持通过一种叫"协程"——使用 async 和 await 语法的东西来写”异步代码“。
让我们在下面的部分中逐一介绍:
- 异步代码
- async 和 await
- 协程
异步代码
异步代码仅仅意味着编程语言
标签:异步,26,FastAPI,await,汉堡,async,等待,def From: https://www.cnblogs.com/yoyoketang/p/17738877.html