FastApi-21-APIRouter

本文介绍了FastAPI中的APIRouter使用方法。通过项目结构展示,解释了如何在视图和主入口文件中定义及注册路由器。示例代码演示了如何创建和使用APIRouter,包括定义GET请求的用户和图片列表接口。最后,通过浏览器访问展示了路由的实际效果。快速理解并应用APIRouter,提升FastAPI开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Part1背景

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

Part2项目结构

项目目录

以上,model 为模型层,templateshtml 模板,views 为视图(其中每个视图都有其独立的路由器),mainapp 入口,所有的 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浏览器访问

根路由
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操作配置文件,超简单

点亮在看!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值