WSGI 포함하기 - Flask, Django 그 외¶
서브 응용 프로그램 - 마운트, 프록시 뒤편에서에서 보았듯이 WSGI 응용 프로그램들을 다음과 같이 마운트 할 수 있습니다.
WSGIMiddleware
를 사용하여 WSGI 응용 프로그램(예: Flask, Django 등)을 감쌀 수 있습니다.
WSGIMiddleware
사용하기¶
WSGIMiddleware
를 불러와야 합니다.
그런 다음, WSGI(예: Flask) 응용 프로그램을 미들웨어로 포장합니다.
그 후, 해당 경로에 마운트합니다.
from fastapi import FastAPI
from fastapi.middleware.wsgi import WSGIMiddleware
from flask import Flask, request
from markupsafe import escape
flask_app = Flask(__name__)
@flask_app.route("/")
def flask_main():
name = request.args.get("name", "World")
return f"Hello, {escape(name)} from Flask!"
app = FastAPI()
@app.get("/v2")
def read_main():
return {"message": "Hello World"}
app.mount("/v1", WSGIMiddleware(flask_app))
확인하기¶
이제 /v1/
경로에 있는 모든 요청은 Flask 응용 프로그램에서 처리됩니다.
그리고 나머지는 FastAPI에 의해 처리됩니다.
실행하면 http://localhost:8000/v1/으로 이동해서 Flask의 응답을 볼 수 있습니다:
Hello, World from Flask!
그리고 다음으로 이동하면 http://localhost:8000/v2 Flask의 응답을 볼 수 있습니다:
{
"message": "Hello World"
}