回顾
不知道大家有没有关注过浏览器的url情况,作为一个测试,比如我们会经常见到 /login 这些url。如果我们接下来接口很多,比如一个user,需要有增删改查等接口,如果全部写在main.py里面,会太杂乱了。所以我们打算引入蓝图blueprint来帮我们解决这个问题。
好处
蓝图(Blueprint)主要是来组织和管理不同的请求处理程序,可以使代码更加模块化、可扩展、可重用和易于测试,从而提高了开发效率和代码质量。好处如下:
- 模块化:蓝图可以将Web应用程序分解为多个模块,每个模块负责处理相关的请求。这使得代码更易于组织和维护,并且可以在多个应用程序中重复使用。
- 可扩展性:蓝图可以轻松地添加、删除或修改请求处理程序,而不会对整个应用程序造成影响。这使得应用程序更加灵活和可扩展。
- 可重用性:蓝图可以在多个应用程序之间共享和重用。这可以节省时间和精力,并减少代码的冗余。
- 易于测试:蓝图可以更容易地进行单元测试,因为每个蓝图都可以独立地测试。
编写
第一步我们创建abandon-server/src/app/routes/auth/user.py文件。
讲解:
routes目录以后存放我们的所有路由模块,现在可能只有跟user相关的路由,但是以后我们还可以创建mock,websocket等等的路由,所以在此,只是为了细化项目,方便管理。auth中存放的是我们的授权模块,首先跟授权模块相关的就是user了,里面有一些跟user相关的创建登陆等等,后续有新的user相关了,咱们还可以继续创建新的文件进行管理。user.py文件存放的就是我们的用户路由部分了。
from fastapi import APIRouter
router = APIRouter(prefix="/auth")
# router注册的函数都会自带/auth,所以url是/auth/register
@router.post("/register")
async def register():
return "注册成功"
@router.post("/login")
async def login():
return "登陆成功"
注册蓝图,引入路由
编辑abandon-server/src/app/__init__.py
from fastapi import FastAPI
from src.app.routes.auth import user
abandon = FastAPI()
# 注册路由
abandon.include_router(user.router)
验证
启动服务,访问刚才我们创建的http://127.0.0.1:9923/auth/register接口
因为我们代码中写的,这两个接口采用的是POST请求方式,所以我们打开postman,来访问此接口查看返回。
至此,验证完毕。