日常使用cursor时,发现有些措施可以使得代码提效的效率倍增(经实测,通常存在半个小时完成几天开发工作量情况),特此记录,方便后续持续优化
js# Cursor Rules - Python / Django 项目团队规范
## ✅ 基础代码规范
- 所有 Python 代码必须遵循 PEP8
- 变量、函数、方法使用 snake_case
- 类名使用 PascalCase
- 常量使用 UPPER_CASE
- 禁止无意义命名,如 a、b、tmp、test1
- 禁止提交 print 调试代码,使用 logging
## ✅ Django 项目结构规范
- apps/ 下每个模块是独立 Django APP,遵循 “单一职责”
- models 放在 models.py 或 models/ 目录
- serializers 放在 serializers.py
- views 放在 views.py 或 views/ 目录,不写业务逻辑
- 业务逻辑写在 services.py
- 工具类放在 common/utils
- 配置放在 config/,不可硬编码在业务中
## ✅ 数据库规范
- 所有模型字段必须写 verbose_name、help_text
- 必须开启 auto_now 或 auto_now_add 的时间字段
- 删除、更新尽量使用软删除
- QuerySet 操作必须捕捉异常,不能直接裸 try
- 不允许 N+1 查询,建议使用 select_related / prefetch_related
## ✅ API 接口规范(RESTful)
- 使用 DRF 编写 API
- 所有接口返回统一结构:
成功:
{
"code": 0,
"msg": "success",
"data": {...}
}
失败:
{
"code": 非0,
"msg": "错误信息"
}
- 分页接口必须返回 total / page / page_size
- 不允许返回内部异常堆栈
- 所有接口必须有权限控制 (IsAuthenticated 或自定义权限)
## ✅ 注释规范
- 所有类、方法必须包含 docstring
- 函数必须写入参数说明、返回值说明
- 写关键业务逻辑时必须加注释
- 注释要说明 “做什么 + 为什么” 而不是“代码翻译”
## ✅ 依赖与环境规范
- 依赖固定在 requirements.txt
- 开发/生产分离:settings/dev.py、settings/prod.py
- 禁止将敏感信息(密码、密钥、URL)写死,必须使用环境变量
- migrations 必须提交
## ✅ Git 规范(遵循 Conventional Commit)
- feat: 新功能
- fix: 修 bug
- docs: 文档
- style: 格式(不影响逻辑)
- refactor: 重构(不影响功能)
- test: 测试
- chore: 构建、脚本、依赖管理
示例:
feat: add user login API
fix: fix token expire bug
refactor: move business logic to service layer
## ✅ 单元测试
- 所有 API 必须写测试
- 覆盖率不低于 70%
- 测试命名为 test_xxxx.py
- 必须断言 status_code 和返回结构
## ✅ 日志规范
- 用 logging,不用 print
- 错误级别必须包含上下文信息
- 不输出敏感数据(密码、token、手机号明文)
## ✅ 安全规范
- 表单和接口必须进行参数校验
- 禁止 SQL 拼接
- 密码必须加盐存储
- Token 必须带过期时间
- 不返回敏感数据(密码、ID卡号、密钥)
## ✅ 其他
- 遇到不确定实现方式,优先选择 Django 官方推荐实践
- 代码尽量可读、可维护、可测试,而不是“能跑就行”
js参考a2l文件的解析逻辑,这个页面http://localhost:8086/#/file/data/list?current=2&pageSize=20
调用解析逻辑时,参考后端Django的接口:class DataFileViewSet(ModelViewSet):
@action(detail=True, methods=['post'], url_path='parse-hex-data')
def parse_hex_data(self, request, pk=None)
@src
js@hex_client.py 根据地址具体是怎么分析出来最终的物理值的?给出详细的分析过程
如果直接指定模型使用,发现有时会特别轴,比如指定sonnet 4.5时(跟他说了几遍,注意事项和需求等还是会犯同样的问题),现在都是setting设置models圈定范围,默认AUTO即可
如果跨不同IDE使用,即apk开发、iOS开发等,建议使用cursor描述开发,调试用对应的IDE,比如Android Studio调试
多看极客时间相关课程,看看业界对这块使用的方式,对比自己的方式
本文作者:lixf6
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!