FastAPI - 挂载 Flask 应用
用 Flask 或 Django 框架编写的 WSGI 应用可以通过 WSGIMiddleware 包装并挂载到 FastAPI 应用上,使其符合 ASGI 标准。
首先在当前的 FastAPI 环境中安装 Flask 包。
安装 Flask
pip3 install flask
示例 - 基于 Flask 的应用
以下代码是一个最小的 Flask 应用 −
main.py
from flask import Flask
flask_app = Flask(__name__)
@flask_app.route("/")
def index_flask():
return "Hello World from Flask!"
然后将 app 声明为 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 http://localhost:8000/ 路径访问。
{"message":"Hello World from FastAPI!"}
Flask 子应用挂载在 URL http://localhost:8000/flask 上。
Hello World from Flask!