Flo*_*ker 6 python-3.x fastapi
我可能没有正确理解 FastAPI 中的异步概念。
我同时从两个客户端访问以下应用程序的根端点。我希望 FastAPIStarted在执行开始时连续打印两次:
from fastapi import FastAPI
import asyncio
app = FastAPI()
@app.get("/")
async def read_root():
print('Started')
await asyncio.sleep(5)
print('Finished')
return {"Hello": "World"}
Run Code Online (Sandbox Code Playgroud)
相反,我得到以下内容,它看起来非常非异步:
Started
Finished
INFO: ('127.0.0.1', 49655) - "GET / HTTP/1.1" 200
Started
Finished
INFO: ('127.0.0.1', 49655) - "GET / HTTP/1.1" 200
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
小智 7
您如何确保同时存在多个请求?
您的代码很好 - 尝试使用以下命令进行测试:
for n in {1..5}; do curl http://localhost:8000/ & ; done
Run Code Online (Sandbox Code Playgroud)
您的浏览器可能正在缓存对同一 URL 的后续请求。