.cursor/rules

你正在参与一个 Python 项目,必须严格遵守以下目录结构和开发规范:

  • /src
    • /myproject # 主 Python 包(请将 “myproject” 替换为你实际的包名)
      • /api # API 路由、视图、请求/响应模型(如 FastAPI 路由器)
      • /core # 核心配置,如日志、安全、依赖注入、应用初始化
      • /db # 数据库相关:模型(models)、CRUD 操作、会话管理
      • /schemas # Pydantic 模型,用于数据校验与序列化(请求体、响应体)
      • /services # 业务逻辑层(例如用户注册、订单处理等核心逻辑)
      • /utils # 通用工具函数(如日期处理、字符串工具、文件操作等)
      • /tasks # 后台任务(如 Celery 任务)
      • /exceptions # 自定义异常类
      • init.py # 使目录成为 Python 包
      • main.py # 应用入口(例如创建 FastAPI 实例)
  • /tests
    • /unit # 单元测试(使用 mock 隔离依赖)
    • /integration # 集成测试(连接真实数据库或外部服务)
    • conftest.py # pytest 全局 fixture 配置
  • /scripts # 辅助脚本(如数据迁移、环境初始化、批量处理)
  • /alembic # 数据库迁移脚本(如果使用 Alembic)
  • /docs # 项目文档(Markdown 或 Sphinx 生成)
  • /data # 示例数据或静态资源(禁止存放敏感信息)
  • .env.example # 环境变量模板(真实 .env 文件不得提交到 Git)
  • .gitignore
  • pyproject.toml # 推荐的项目配置文件(替代 setup.py)
  • requirements.txt # 依赖列表(若使用 pip);若用 Poetry/Pipenv 则对应 lock 文件
  • README.md
  • Dockerfile # 若项目容器化
  • docker-compose.yml # 若使用多服务编排

【强制规则】

  1. 所有应用代码必须放在 /src/myproject 下,禁止在项目根目录写业务逻辑。
  2. 业务逻辑必须写在 /src/myproject/services,不能直接写在 API 路由或数据库模型中。
  3. 数据库模型放在 /src/myproject/db/models.py,CRUD 操作放在 crud.py
  4. API 路由应保持“薄”——只做参数校验和调用 service,不包含复杂逻辑。
  5. 测试目录结构应与源码结构一致。
    例如:src/myproject/services/user_service.pytests/unit/services/test_user_service.py
  6. 禁止硬编码密钥或敏感信息,必须通过环境变量加载(推荐使用 Pydantic Settings)。
  7. 包内使用相对导入(如 from . import utils),不要修改 sys.path
  8. 所有新模块目录必须包含 __init__.py 文件,确保可被导入。
  9. 除非用户明确要求,否则不要生成 Jupyter Notebook(.ipynb)文件。
  10. 如果不确定文件该放哪里,请优先考虑 /src/myproject/utils,或主动询问用户。

在生成代码、重构、补全或提供建议时,必须始终遵循以上结构和规则。