FastAPI教程04——路由分发
在上篇文章我们学习了FastAPI教程——请求参数验证,这篇我们学习FastAPI教程——路由分发。在开发一个完整的项目,肯定包含大量的URL路由,把所有的URL路由都写在一个py文件中,那肯定是不可取的。可以使用路由分发APIRouter,把一个项目的URL路由多个模块,每个模块管理好自己的路由。
·
在上篇文章我们学习了FastAPI教程——请求参数验证,这篇我们学习FastAPI教程——路由分发。
在开发一个完整的项目,肯定包含大量的URL路由,把所有的URL路由都写在一个py文件中,那肯定是不可取的。
可以使用路由分发APIRouter,把一个项目的URL路由多个模块,每个模块管理好自己的路由。
路由分发
APIRouter是FastAPI中用于模块化组织路由的工具,它类似于Flask的蓝图Blueprint,其语法格式如下:
# 创建路由器实例
模块名 = APIRouter(prefix='路由前缀',tags=['标签分组'])
其中:
-
prefix:为URL路由统一添加前缀,可选参数
-
tags:在SwaggerUI中按标签分组显示,可选参数;
假设我们创建User用户模块,首先创建名为User包,再创建名为urls.py文件,当然文件名可以是任意的,其内容如下:
from fastapi import APIRouter
User = APIRouter(prefix="/users", tags=["用户模块"])
@router.get("/say_Hi")
async def say_Hi():
return {'message': '你好,白巧克力'}
这样就成功创建了User用户子模块路由了,当我们访问/users/say_Hi即可返回:你好,白巧克力。
主路由
APIRouter创建的子路由模块需要使用include_router方法将路由模块导入主路由,其语法格式如下:
include_router(子路由, prefix='路由前缀')
示例代码如下:
import uvicorn
from fastapi import FastAPI
from User.urls import User # 导入子路由
app = FastAPI()
app.include_router(User,prefix='/a') # 导入子路由
if __name__ == '__main__':
uvicorn.run('main:app', host='127.0.0.1', port=8004, reload=True)
运行结果如下:

好了,FastAPI教程——路由分发就讲到这里了。
公众号:白巧克力LIN
该公众号发布Java、Python、数据库、Linux、Flask、Django、自动化测试、Git、算法、前端、服务器、AI等相关文章!
-
END -
更多推荐
所有评论(0)