SuperAPI AI 工具集

django-patterns

通用与其它

查看项目

更新于 10-15 23:24

技能介绍

用途:面向 Django 项目提供架构与编码实践参考,覆盖项目结构、ORM 优化、DRF 序列化器、信号与自定义中间件,并附反模式与检查清单。

项目结构:主张 apps、common 与 config 分离,配置拆分为 base.py、local.py、production.py。业务逻辑写入 services.py(写操作)与 selectors.py(读操作),视图保持轻薄。

ORM 优化:使用 select_related 处理外键/一对一(SQL JOIN),prefetch_related 配合 Prefetch 处理多对多与反向外键;用 defer 排除不必要字段,only 只取少数列;批量操作用 bulk_create 与 bulk_update,batch_size 示例为 1000。建议用 django-debug-toolbar 或测试中的 connection.queries 检查查询。

DRF 序列化器:示例 OrderSerializer 展示 source 映射只读字段、嵌套只读序列化器、SerializerMethodField 计算 total,并在 validate 中做跨字段校验。

信号与中间件:post_save 中用 created 判断触发异步任务(如发送确认、更新库存),跨应用副作用优先用信号,同应用逻辑直接调用服务。RequestTimingMiddleware 演示 WSGI 可调用对象模式记录请求耗时与状态码。

反模式:业务逻辑写进视图或序列化器、列表接口不用分页、缺失 select_related/prefetch_related 导致 N+1、滥用信号、密钥写在 settings.py、未参数化原始 SQL。

检查清单:业务逻辑位于 services/selectors、列表查询按需预取、序列化器自定义校验、配置分模块、合并前审查迁移、批量操作、中间件符合 WSGI 模式、测试覆盖模型约束/序列化器校验/视图权限。

限制:资料未提供安装命令、版本要求、价格或平台信息,实际效果需自行评估。