Jupyter + FastAPI#

在 Jupyter 中运行 FastAPI 应用程序#

要在 Jupyter 中运行 FastAPI 应用程序,我们可以使用以下命令:

!pip install -q fastapi uvicorn
from fastapi import FastAPI

app = FastAPI()
@app.get("/")
async def root():
    return "Hi!"

如果您希望从已经运行的 async 环境中运行 uvicorn,请改用 uvicorn.Server.serve() (将以下代码添加到您的 Jupyter 笔记本中的新代码单元格中并执行它):

if __name__ == "__main__":
    import asyncio
    import uvicorn
    config = uvicorn.Config(app)
    server = uvicorn.Server(config)
    await server.serve()

或者,获取当前事件循环(使用 asyncio.get_event_loop()),并调用 loop.create_task() 在事件循环内为当前线程创建任务:

if __name__ == "__main__":
    import asyncio
    import uvicorn
    config = uvicorn.Config(app, port=3000, reload=False,)
    server = uvicorn.Server(config)
    loop = asyncio.get_event_loop()
    loop.create_task(server.serve())