FastAPI系列 4 -路由管理APIRouter
创作时间:
作者:
@小白创作中心
FastAPI系列 4 -路由管理APIRouter
引用
CSDN
1.
https://blog.csdn.net/qq_51116518/article/details/139568816
在使用Python进行后端开发时,很少会将所有内容都放在一个文件中。FastAPI提供了一个方便的工具——APIRouter,可以在保持所有灵活性的同时构建你的应用程序。本文将详细介绍如何使用APIRouter来组织和管理FastAPI应用中的不同功能模块。
一、前言
未来的py开发者请上座,在使用python做为后端开发一个应用程序或 Web API,很少会将所有的内容都放在一个文件中。FastAPI 提供了一个方便的工具,可以在保持所有灵活性的同时构建你的应用程序。
二、APIRouter使用示例
1、功能拆分
功能:在Web输入Url返回数据,但需要使用在users、books中定义的API
├── fastapi
│ ├── __init__.py
│ ├── main.py
│ └── routers
│ │ ├── __init__.py
│ │ ├── users.py
│ │ └── books.py
app 目录包含了所有内容。并且它有一个空文件 app/init.py,它包含一个 app/main.py 文件。
routers 目录下有 books.py 和 users.py 2个文件。
项目目录层级如下:
2、users、books模块开发
专门用于处理用户逻辑的文件是位于 /fastapi/routers/users.py 的子模块
users.py
# -*- coding:utf-8 -*-
from fastapi import APIRouter
router = APIRouter()
# 获取用户列表
@router.get("/users/", tags=["users"])
async def read_users():
return [{"username": "Teacher Li"}, {"username": "Teacher Tom"}]
# 获取个人详情
@router.get("/users/one", tags=["users"])
async def read_user_me():
return {"username": "Teacher Li", "phone_number": "0123456789"}
# 获取用户名称
@router.get("/users/{username}", tags=["users"])
async def read_user(username: str):
return {"username": username}
专门用于处理书逻辑的文件是位于 /fastapi/routers/books.py 的子模块
books.py
# -*- coding:utf-8 -*-
from fastapi import APIRouter
router=APIRouter()
@router.get('/books', tags=["books"])
async def create_book(book):
result={"book":book}
return result
@router.get('/getbooks', tags=["books"])
async def get_book():
result=[{"book":'测试1'},{'book':'测试2'}]
return result
此模块中的所有路径操作都有相同的:
- 路径 prefix:路径前缀 /users。
- tags:(仅有一个 users 标签)。
- responses: 定义响应状态码
- dependencies:依赖项。
3、FastAPI主体
main.py
import uvicorn
from fastapi import Depends, FastAPI
from routers import books, users
app = FastAPI()
app.include_router(users.router)
app.include_router(books.router)
@app.get("/")
async def root():
return {"message": "Hello Bigger Applications!"}
if __name__ == '__main__':
uvicorn.run(app,port=15341)
三、运行结果
uvicorn启动FastAPI后端
运行main.py
返回页面
启动服务,访问http://127.0.0.1:15341/docs,生成的APi交互文档
热门推荐
一“典”案例丨社会主义核心价值观典型案例
四川旅游购物攻略:当地人推荐的必买特产与纪念品清单
苹果手机用户频遭盗刷,免密支付功能成“罪魁祸首”?
古人靠什么去打猎?古代打猎的工具都有哪些?
股票投资的期限是怎么划分的?短期、中期和长期投资策略详解
食道有病的症状有哪些
PTE和雅思考试有什么不同?六大方面对比!
电压力锅使用全攻略:清洗、保养与选购要点详解
如何治疗因过度紧张导致的眩晕
高效运动减肥的方法有哪些 4种高效运动减肥效果好
如何有效寻找并加入合适的社交群组,享受交流乐趣
阳台改厨房,厨房改厕所!私自改造房屋结构谁来管?
楼上阳台改卫生间引发纠纷,法院判决恢复原状
古代的谋士能否成为一把手,需要具备哪些条件?有人可以有人不行
醋泡花生的保健作用
如何充分利用数学学习资源提高成绩?
半导体制造工艺详解:从单晶硅到芯片封装
他徒手掰开原子弹,最终DNA断裂、肌肉溶解,成了等死亡的活死人
是醒得太早了,还是睡过了头!汉阳公园一朵牡丹凌寒独开
100万怎么投资收益最大?风险与收益的权衡
中央厨房加工标准:从采购到配送的全方位规范
一个光伏电站是怎么设计的?全设计流程及方法分享
需求分析方法:用户故事地图梳理需求4大步骤
被年轻人家里的“无玄关设计”惊艳到了!换个思路后,美观又实用
打造理想家居第一站:下沉式玄关的科学设计与生活美学
售后问题处理缺乏标准化?6 种建立售后标准流程手段
不同拍摄视角(平视、仰视、俯视)对构图的影响
少年不识愁滋味,爱上层楼。爱上层楼,为赋新词强说愁
铝合金精密加工的行业标准,你知道吗?(铝合金加工精度)
哆啦A梦冷知识:大雄与胖妹后代成亲家