Python 当应用程序位于两个不同的文件中时,mount函数如何在fastapi中工作?

Python 当应用程序位于两个不同的文件中时,mount函数如何在fastapi中工作?,python,python-3.x,api,mount,fastapi,Python,Python 3.x,Api,Mount,Fastapi,我有两个不同的fastaoi文件。我希望将INTEGATE作为单个文件。我已经发布了我的代码。请回顾一下,让我知道你的想法和建议 main.py from fastapi import FastAPI from app import submain as subapi app = FastAPI() app.mount("/subapi", subapi) @app.get("/app") def read_main(): return {&q

我有两个不同的fastaoi文件。我希望将INTEGATE作为单个文件。我已经发布了我的代码。请回顾一下,让我知道你的想法和建议

main.py

from fastapi import FastAPI
from app import submain as subapi

app = FastAPI()
app.mount("/subapi", subapi)

@app.get("/app")
def read_main():
    return {"message": "Hello World from main app"}
submin.py

from fastapi import FastAPI

subapi = FastAPI()
@subapi.get("/sub")
async def read_sub():
    return {"message": "Hello World from sub API"}
错误

请告诉我如何将fastapi应用程序装载到其他位置或其他文件?

您需要使用
来自fastapi导入APIRouter

请参见以下内容:
submin.py

#!/user/bin/env python
# -*- coding: utf-8 -*-
from fastapi import APIRouter

subapi = APIRouter()

@subapi.get("/sub")
async def read_sub():
    return {"message": "Hello World from sub API"}
main.py

#!/user/bin/env python
# -*- coding: utf-8 -*-
from fastapi import FastAPI

import submain

app = FastAPI()
app.mount("/subapi", submain)


@app.get("/app")
def read_main():
    return {"message": "Hello World from main app"}

运行代码:

$ uvicorn main:app --reload
←[32mINFO←[0m:     Uvicorn running on ←[1mhttp://127.0.0.1:8000←[0m (Press CTRL+C to quit)
←[32mINFO←[0m:     Started reloader process [←[36m←[1m6616←[0m] using ←[36m←[1mwatchgod←[0m
←[32mINFO←[0m:     Started server process [←[36m1084←[0m]
←[32mINFO←[0m:     Waiting for application startup.
←[32mINFO←[0m:     Application startup complete.


$ uvicorn main:app --reload
←[32mINFO←[0m:     Uvicorn running on ←[1mhttp://127.0.0.1:8000←[0m (Press CTRL+C to quit)
←[32mINFO←[0m:     Started reloader process [←[36m←[1m6616←[0m] using ←[36m←[1mwatchgod←[0m
←[32mINFO←[0m:     Started server process [←[36m1084←[0m]
←[32mINFO←[0m:     Waiting for application startup.
←[32mINFO←[0m:     Application startup complete.