4-Fastapi蓝图使用

321 阅读2分钟

回顾

不知道大家有没有关注过浏览器的url情况,作为一个测试,比如我们会经常见到  /login 这些url。如果我们接下来接口很多,比如一个user,需要有增删改查等接口,如果全部写在main.py里面,会太杂乱了。所以我们打算引入蓝图blueprint来帮我们解决这个问题。

好处

蓝图(Blueprint)主要是来组织和管理不同的请求处理程序,可以使代码更加模块化、可扩展、可重用和易于测试,从而提高了开发效率和代码质量。好处如下:

  1. 模块化:蓝图可以将Web应用程序分解为多个模块,每个模块负责处理相关的请求。这使得代码更易于组织和维护,并且可以在多个应用程序中重复使用。
  2. 可扩展性:蓝图可以轻松地添加、删除或修改请求处理程序,而不会对整个应用程序造成影响。这使得应用程序更加灵活和可扩展。
  3. 可重用性:蓝图可以在多个应用程序之间共享和重用。这可以节省时间和精力,并减少代码的冗余。
  4. 易于测试:蓝图可以更容易地进行单元测试,因为每个蓝图都可以独立地测试。

编写

第一步我们创建abandon-server/src/app/routes/auth/user.py文件。

讲解:

  1. routes目录以后存放我们的所有路由模块,现在可能只有跟user相关的路由,但是以后我们还可以创建mock,websocket等等的路由,所以在此,只是为了细化项目,方便管理。
  2. auth中存放的是我们的授权模块,首先跟授权模块相关的就是user了,里面有一些跟user相关的创建登陆等等,后续有新的user相关了,咱们还可以继续创建新的文件进行管理。
  3. 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,来访问此接口查看返回。

image.png 至此,验证完毕。