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交互文档
热门推荐
如何挑战人工智能象棋比赛
呼伦贝尔自驾旅游路线地图攻略
塑料熏蒸桶使用指南:安全养生的正确打开方式
智能手机六大智能应用,全方位提升现代生活品质
线性代数在信号处理算法中的应用
“八嘎呀路”:从辱骂到文化符号,一个词汇背后的战争记忆
涿鹿之战:黄帝蚩尤大战与华夏民族的诞生
古代消暑三大神器:瓷枕散热,冰块储寒,竹夫人送凉
转移因子口服溶液:免疫调节药物的临床应用与注意事项
汽车抛光步骤详解:从准备到维护,让你的爱车焕新如初
菟丝子配当归:中医补精补血的经典组合
冬季游泳打卡圣地:宿迁市全民健身中心民丰游泳馆
冬泳:挑战与安全并重的冬季运动
温培钧教你冬季游泳技巧
北京研学必尝十大特色美食,从烤鸭到豆汁儿
放屁频率和气味反映肠道健康,营养师解析成因与改善方法
社区活动:点亮老年人的幸福晚年
DNF手游:40级装备继承法,零成本达成+20强化
基于Spring Boot的高效学生考勤管理系统设计与实现
“好”胆固醇也有风险,最新研究揭示HDL水平与心血管健康关系
血小板低于5万会自发性出血,三大原因导致血小板减少
历史背后的阴谋:那些你不知道的政治斗争
深圳北站到龙华富士康总站:三种交通方案全解析
心理知识小科普丨心理创伤如何进行自我调节
家庭关系矛盾频发?从边界感重塑健康关系
刘诗诗吴奇隆换班带娃,你怎么看?
国家医保局有关司负责人就居民医保参保答记者问
NASA朱诺号首次探测到欧罗巴大气离子,暗示地下海洋存在
更年期妈妈出汗怎么办?6个实用调理方法帮你轻松应对
光雾山冬季旅游装备大揭秘:从保暖到摄影,全方位实用指南