Fastapi 简明教程

FastAPI - Mounting Flask App

Flask 或 Django 框架中编写的 WSGI 应用程序可以在 WSGIMiddleware 中进行封装,并将其装载到 FastAPI 应用程序上,使其符合 ASGI。

首先在当前 FastAPI 环境中安装 Flask 包。

pip3 install flask

以下代码是一个极简的 Flask 应用程序−

from flask import Flask
flask_app = Flask(__name__)
@flask_app.route("/")
def index_flask():
   return "Hello World from Flask!"

然后,将应用程序声明为 FastAPI 应用程序对象,并定义一个操作函数来呈现 Hello World 消息。

from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def index():
   return {"message": "Hello World from FastAPI!"}

接下来,使用 mount() 方法将 flask 应用程序装载为 FastAPI 主应用程序的子应用程序。

from fastapi.middleware.wsgi import WSGIMiddleware
app.mount("/flask", WSGIMiddleware(flask_app))

运行 Uvicorn 开发服务器。

uvicorn flaskapp:app –reload

FastAPI 主应用程序可在 URL [role="bare"] [role="bare"]http://localhost:8000/ 路由中使用。

{"message":"Hello World from FastAPI!"}

Flask 子应用程序装载在 URL [role="bare"] [role="bare"]http://localhost:8000/flask 上。

Hello World from Flask!