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交互文档
热门推荐
00萝莉文化盛行,如何理解并正确对待?
中船应急决定不提前赎回可转债,刚被立案股民可报名挽损
买房首付的资金筹集方法有哪些?这些方法对购房者有何实际帮助?
世人只知梁祝悲,未闻余杭花妖泪。刀郎动人歌曲《花妖》
AI时代,如何培养和用好创新型人才
云南大理去洱海有多远?路程、距离及怎么走全解析
大厂人搞副业,尽头是离职博主?
从《镜花缘》看社会转型期的文化反思
70岁后想健康长寿,避开5个“养生”误区,否则很伤身
腊肉的嘌呤含量是多少
HIT(高强度间歇训练)运动:燃脂新宠,健康新选择
国际劳工组织(ILO)数据库:全球劳动力市场信息的权威来源
专科生的职业规划与发展路径:如何为未来铺路?
糖尿病患者的科学饮食指南
2024年指标到校政策全面公开:各区市县市级统分指标名额分配一览
连锁门店如何快速联网
种核桃种子要怎么放才是对的
"妖股"回落!东方精工踩中多个热点概念,换手率超52%被砸"天地板"
豌豆苗的正确焯水方法:营养美味并存的关键
十本非常好看的废土流小说,末日降临,危机四伏
治疗白癜风中药1类创新药获批进入临床研究
十类适合吃烧烤喝的酒推荐 吃烧烤喝什么酒比较好
如何清除老年人住过的房间的“老人味”,潮湿霉味等异味?
芋头和土豆可以一起吃吗
怀仁羊杂:塞北特色小吃的匠心传承
如何检查身份证是否存在异常?
一文看懂乌龙茶:从入门到品鉴的全面指南
食肉指南:猪身上真正不能吃的,其实是这3处
成年蝴蝶犬每日饮食规划(蝴蝶犬饮食需求及食物推荐)
度数越高全飞秒伤害越大吗?解析600度/800度/1000度以上能做全飞秒吗