Part1背景
通常在我们开发 app
时都会用到路由,像 Flask
有 blueprint
,Django
有 urls
等,其目的都是为了路由汇总管理。FastApi
也不例外,其拥有 APIRouter
。今天我们就一起来了解 APIRouter
是如何使用的。
Part2项目结构

以上,
model
为模型层,templates
为html
模板,views
为视图(其中每个视图都有其独立的路由器),main
为app
入口,所有的APIRouter
都在这里注册。
Part3代码
1视图中路由器的定义和使用
from fastapi import FastAPI,Depends,Header,HTTPException,APIRouter
from starlette.requests import Request
from starlette.templating import Jinja2Templates
from starlette import status
import uvicorn
from deta import Deta
from fastapi.responses import StreamingResponse
# 实例化路由器
router = APIRouter()
templates = Jinja2Templates('templates')
# 注意,视图这里使用router来声明请求方式&URI
@router.get('/users/')
def user_list():
return "这是用户们"
@router.get('/imgs/')
def img_list():
return "这是图片"
2main 中的路由器注册
from fastapi import Depends, FastAPI
from views import user
from views.utm import login_required
import uvicorn
# 如果需要开启app鉴权,则用这种方式↓
# app = FastAPI(dependencies=[Depends(login_required)])
app = FastAPI() # 免鉴权
app.include_router(
user.router,
prefix='/um',
tags=['um'],
responses={520: {"description": "I'm a user description!"}}
)
@app.get("/")
async def root():
return {"message": "Welcome to Applications APIRouter!"}
if __name__ == "__main__":
uvicorn.run(app='main:app',host='127.0.0.1',port=8765,reload=True)
3浏览器访问



怎么样,简单吧,你学废了吗?
以上就是今天的全部内容了,感谢您的阅读,我们下节再会。
完
往期推荐
点亮在看!