修改前先读 根规则 和 工程规则。保存、批量更新、导入、复制、子数据移除与流程配置必须完整阅读 子数据保存规则。
Python 3.9、FastAPI、SQLAlchemy、Pydantic v2、MySQL / pymysql、Redis、MinIO、JWT。依赖中包含 Alembic,但当前仓库未配置应用级 Alembic 迁移目录,不能将其视为现行迁移流程。入口 app/main.py → app.main:app。历史工程约定为 Python 3.9,start.sh 的缺失解释器提示写作 3.10+,存在文档与脚本提示不一致;本次整理不升级运行环境,执行前确认本地解释器与依赖兼容。
app/api/ 保持薄路由;业务逻辑放 app/services/、数据库访问放 app/crud/。app/models/,输入输出 app/schemas/,定时任务 app/tasks/;配置由 app/core/config.py 的 pydantic-settings 读取环境文件。app/api/__init__.py 与 app/main.py,不能绕过认证、加密、审计。create_time DESC;业务数据软删除;数据库变更同步 ../docs/sql/。_row_to_dict、CreateBody/UpdateBody 和前端 formData 的可写字段逐项对齐,计算字段排除。通过相关回归验证,不调用仓库中不存在的通用字段检查脚本。tenant_no + sample_code 跨表关联,不能使用可变化的协议 ID;该规则仅适用于相关样本功能。在 backend 目录执行:
source venv/bin/activate
pip install -r requirements.txt
./start.sh --reload
pytest
./start.sh --help 查看本地选项,默认监听 0.0.0.0:8000;按需求明确 host / port。生产脚本 ./start-prod.sh 支持 install|start|stop|restart|status|logs,读取生产环境;不能把生产操作当成本地验证。
tests/ 已有多个业务回归测试模块。先执行受影响测试,再按风险补充验证;记录实际命令和结果,不把未执行的测试写成通过。
API_V1_PREFIX 控制,通常 /api;以已注册路由为准。LOGIN_RSA_PRIVATE_KEY_PEM 配置机制提供。API_ENCRYPT_* 配置控制,排除接口在 API_ENCRYPT_EXCLUDE_PATHS,不得通过新路由绕过中间件。.env / .env.local / .env.production;不在文档传播真实凭据,不依赖历史默认管理员密码。../docs/sql/shanxia2.0.sql 并结合迁移确认当前结构;Swagger /docs、ReDoc /redoc。