password
查看人数
type
status
date
slug
summary
category
icon
tags
作者
状态
😀
在 FastAPI 项目中,合理的文件结构和命名规范可以提高代码的可读性和可维护性。以下是一个常见的多文件管理结构和命名建议,适用于中大型项目:

1. 项目结构示例


2. 文件命名规范

核心文件

  • main.py: 应用入口文件,初始化 FastAPI 应用并加载路由。
  • database.py: 数据库连接和配置(如 SQLAlchemy 的 SessionLocal)。
  • dependencies.py: 依赖注入逻辑(如获取当前用户、数据库会话等)。
  • exceptions.py: 自定义异常处理。

核心模块 (core/)

  • config.py: 项目配置(如环境变量、数据库 URL 等)。
  • security.py: 认证和授权逻辑(如 JWT、OAuth2 等)。
  • utils.py: 工具函数(如日期处理、字符串处理等)。

模型模块 (models/)

  • user.py: 用户相关的数据库模型。
  • item.py: 商品相关的数据库模型。
  • 其他模型文件按功能命名,如 order.pyproduct.py 等。

Pydantic 模型 (schemas/)

  • user.py: 用户相关的 Pydantic 模型(如 UserCreateUserResponse)。
  • item.py: 商品相关的 Pydantic 模型(如 ItemCreateItemResponse)。
  • 其他模型文件按功能命名,如 order.pyproduct.py 等。

API 路由 (api/)

  • users.py: 用户相关的路由(如注册、登录、获取用户信息)。
  • items.py: 商品相关的路由(如创建商品、获取商品列表)。
  • health_check.py: 健康检查路由。
  • 其他路由文件按功能命名,如 orders.pyproducts.py 等。

CRUD 操作 (crud/)

  • user.py: 用户相关的数据库操作(如创建用户、查询用户)。
  • item.py: 商品相关的数据库操作(如创建商品、查询商品)。
  • 其他操作文件按功能命名,如 order.pyproduct.py 等。

测试模块 (tests/)

  • test_users.py: 用户相关的测试用例。
  • test_items.py: 商品相关的测试用例。
  • 其他测试文件按功能命名,如 test_orders.pytest_products.py 等。

3. 命名建议

  • 模块名: 使用小写字母和下划线(如 user.pyhealth_check.py)。
  • 类名: 使用大驼峰命名法(如 UserCreateItemResponse)。
  • 函数名: 使用小写字母和下划线(如 get_user_by_idcreate_item)。
  • 变量名: 使用小写字母和下划线(如 current_userdb_session)。

4. 示例代码

app/main.py

app/api/v1/users.py

app/schemas/user.py

app/crud/user.py

app/models/user.py


5. 总结

  • 模块化: 按功能划分模块,如 models/schemas/api/ 等。
  • 命名清晰: 文件名和类名应直观反映其功能。
  • 一致性: 保持命名风格一致,便于团队协作和维护。
通过合理的文件结构和命名规范,可以使 FastAPI 项目更易于扩展和维护。
 
💡
有关使用上的问题,欢迎您在底部评论区留言,一起交流~
github同步gitlab代码,gitee同步GitHubfastapi实现jwt2.0加密解密
Loading...