茶叶网站建设,题库制作助手app,建设网站需要几个文件夹,wordpress msn登陆FastAPI系列 -路由管理APIRouter 文章目录 FastAPI系列 -路由管理APIRouter一、前言二、APIRouter使用示例1、功能拆分2、users、books模块开发3、FastAPI主体 三、运行结果 一、前言
未来的py开发者请上座#xff0c;在使用python做为后端开发一个应用程序或 Web API#x…FastAPI系列 -路由管理APIRouter 文章目录 FastAPI系列 -路由管理APIRouter一、前言二、APIRouter使用示例1、功能拆分2、users、books模块开发3、FastAPI主体 三、运行结果 一、前言
未来的py开发者请上座在使用python做为后端开发一个应用程序或 Web API很少会将所有的内容都放在一个文件中。FastAPI 提供了一个方便的工具可以在保持所有灵活性的同时构建你的应用程序。
二、APIRouter使用示例
1、功能拆分
功能在Web输入Url返回数据但需要使用在users、books中定义的API
├── fastapi
│ ├── __init__.py
│ ├── main.py
│ └── routers
│ │ ├── __init__.py
│ │ ├── users.py
│ │ └── books.pyapp 目录包含了所有内容。并且它有一个空文件 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 APIRouterrouterAPIRouter()router.get(/books, tags[books])
async def create_book(book):result{book:book}return resultrouter.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, usersapp 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,port15341)三、运行结果
uvicorn启动FastAPI后端 运行main.py 返回页面
启动服务访问http://127.0.0.1:15341/docs生成的APi交互文档