FastAPI 怎么挂载 Flask App?

文章导读
Previous Quiz Next 用 Flask 或 Django 框架编写的 WSGI 应用可以通过 WSGIMiddleware 包装并挂载到 FastAPI 应用上,使其符合 ASGI 标准。
📋 目录
  1. 示例 - 基于 Flask 的应用
A A

FastAPI - 挂载 Flask 应用



Previous
Quiz
Next

用 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!