.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 实例)
- /myproject # 主 Python 包(请将 “myproject” 替换为你实际的包名)
- /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 # 若使用多服务编排
【强制规则】
- 所有应用代码必须放在
/src/myproject下,禁止在项目根目录写业务逻辑。 - 业务逻辑必须写在
/src/myproject/services,不能直接写在 API 路由或数据库模型中。 - 数据库模型放在
/src/myproject/db/models.py,CRUD 操作放在crud.py。 - API 路由应保持“薄”——只做参数校验和调用 service,不包含复杂逻辑。
- 测试目录结构应与源码结构一致。
例如:src/myproject/services/user_service.py→tests/unit/services/test_user_service.py - 禁止硬编码密钥或敏感信息,必须通过环境变量加载(推荐使用 Pydantic Settings)。
- 包内使用相对导入(如
from . import utils),不要修改sys.path。 - 所有新模块目录必须包含
__init__.py文件,确保可被导入。 - 除非用户明确要求,否则不要生成 Jupyter Notebook(.ipynb)文件。
- 如果不确定文件该放哪里,请优先考虑
/src/myproject/utils,或主动询问用户。
在生成代码、重构、补全或提供建议时,必须始终遵循以上结构和规则。