当前位置:   article > 正文

FastApi-21-APIRouter

fastapi apirouter

Part1背景

通常在我们开发 app 时都会用到路由,像 FlaskblueprintDjangourls 等,其目的都是为了路由汇总管理。FastApi 也不例外,其拥有 APIRouter。今天我们就一起来了解 APIRouter 是如何使用的。

Part2项目结构

项目目录

以上,model 为模型层,templateshtml 模板,views 为视图(其中每个视图都有其独立的路由器),mainapp 入口,所有的 APIRouter 都在这里注册。

Part3代码

1视图中路由器的定义和使用

  1. from fastapi import FastAPI,Depends,Header,HTTPException,APIRouter
  2. from starlette.requests import Request
  3. from starlette.templating import Jinja2Templates
  4. from starlette import status
  5. import uvicorn
  6. from deta import Deta
  7. from fastapi.responses import StreamingResponse
  8. # 实例化路由器
  9. router = APIRouter()
  10. templates = Jinja2Templates('templates')
  11. # 注意,视图这里使用router来声明请求方式&URI
  12. @router.get('/users/')
  13. def user_list():
  14.     return "这是用户们"
  15. @router.get('/imgs/')
  16. def img_list():
  17.     return "这是图片"

2main 中的路由器注册

  1. from fastapi import Depends, FastAPI
  2. from views import user
  3. from views.utm import login_required
  4. import uvicorn
  5. # 如果需要开启app鉴权,则用这种方式↓
  6. # app = FastAPI(dependencies=[Depends(login_required)])
  7. app = FastAPI() # 免鉴权
  8. app.include_router(
  9.     user.router,
  10.     prefix='/um',
  11.     tags=['um'],
  12.     responses={520: {"description""I'm a user description!"}}
  13.     )
  14. @app.get("/")
  15. async def root():
  16.     return {"message""Welcome to Applications APIRouter!"}
  17. if __name__ == "__main__":
  18.     uvicorn.run(app='main:app',host='127.0.0.1',port=8765,reload=True)

3浏览器访问

根路由
um路由到users
um路由到imgs

怎么样,简单吧,你学废了吗?

以上就是今天的全部内容了,感谢您的阅读,我们下节再会。

往期推荐

Gevent | 异步就用它!

5分钟带你了解Scrum

5分钟学会本地Pypi源搭建

FastApi-18-Token生成

FastApi-19-Token校验

FastApi-20-Token获取和使用

jenkinsclient | 好用的jenkins客户端

PySimpleGUI经典实践之:这个汉字怎么读?

IO被谁吃了?

Jmeter测试TCP百万连接

用Python操作配置文件,超简单

点亮在看!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号