当前位置:   article > 正文

FastAPI(二)路由映射_fastapi include_router

fastapi include_router

目录

一、在根目录-新建apps文件夹

二、在apps文件夹下-新建user文件夹和menu文件夹 

三、编写API

四、 将子路由导入根路由中

五、改造main.py

六、启动并访问接口文档


一、在根目录-新建apps文件夹

在apps文件夹下新建modules文件夹

 编辑modules文件夹下的__init__.py文件如下:

  1. from fastapi import APIRouter
  2. # from .user import user_api
  3. # from .menu import menu_api
  4. api_router = APIRouter()
  5. # api_router.include_router(user_api, prefix="/user")
  6. # api_router.include_router(menu_api, prefix="/menu")
  7. __all__ = ['api_router']

二、在apps/modules文件夹下-新建user文件夹和menu文件夹 

三、编写API

①在user文件夹下新建views.py内容如下:

  1. from fastapi import APIRouter
  2. router = APIRouter()
  3. @router.post("/login", summary="用户登录")
  4. async def login():
  5. return {'message': '登录成功'}

②将user接口路由导出,编辑user文件夹下的__init__.py文件如下:

from .views import router as user_api

③在menu文件夹下新建views.py内容如下:

  1. from fastapi import APIRouter
  2. router = APIRouter()
  3. @router.get("/get_list", summary="菜单列表")
  4. async def get_list():
  5. return {'data': ['用户管理', '菜单管理', '系统监控']}

④将menu接口路由导出,编辑menu文件夹下的__init__.py文件如下:

from .views import router as menu_api

四、 将子路由导入根路由中

编辑apps/modules文件夹下的__init__.py文件为:

  1. from fastapi import APIRouter
  2. from .user import user_api
  3. from .menu import menu_api
  4. api_router = APIRouter()
  5. api_router.include_router(user_api, prefix="/user")
  6. api_router.include_router(menu_api, prefix="/menu")
  7. __all__ = ['api_router']

五、改造main.py

  1. import uvicorn
  2. from fastapi import FastAPI
  3. from apps.modules import api_router
  4. app = FastAPI()
  5. # 跨域配置
  6. origins = [
  7. "http://localhost",
  8. "http://localhost:7146",
  9. "http://localhost:1880",
  10. "http://localhost:80",
  11. ]
  12. app.add_middleware(
  13. CORSMiddleware,
  14. allow_origins=origins,
  15. allow_credentials=True,
  16. allow_methods=["*"],
  17. allow_headers=["*"],
  18. )
  19. app.include_router(api_router, prefix='/api')
  20. if __name__ == "__main__":
  21. uvicorn.run("main:app", host="0.0.0.0", port=8080)

六、启动并访问接口文档

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/464699
推荐阅读
相关标签
  

闽ICP备14008679号