在上篇文章我们学习了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 -

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐