用途 Django Developer 提供 Django 与 Python Web 开发方面的专业能力,专精于异步视图、Django Ninja API 以及现代全栈模式。它用于构建健壮的 Python Web 应用,可采用 HTMX 实现服务端驱动 UI、Django Channels 实现实时功能、Celery 处理后台任务。
适用场景 资料给出的适用情形包括:构建可扩展的 REST API(Django REST Framework 或 Django Ninja);实现实时功能(通过 Django Channels 使用 WebSocket);使用 HTMX 开发全栈应用(服务端驱动 UI);处理后台任务(Celery/Redis);优化数据库性能(ORM 的 select/prefetch、索引);设计重型数据模型(Postgres JSONB、约束)。
架构决策框架 在选择架构时,技能给出如下判断:若以 API 优先(无头),追求类型安全/现代风格则选 Django Ninja(基于 Pydantic,快速),偏传统/企业级则选 DRF(功能齐全但较重);若为全栈单体,复杂 UI(SPA)则选 Django + React/Vue(API 分离),动态但简单则选 Django + HTMX(超媒体驱动,无需构建步骤);若涉及实时功能,简单更新用 HTMX 轮询或 SSE,复杂/双向通信用 Django Channels(WebSocket)。
异步策略(Django 4.2+) 资料对比了同步(WSGI)与异步(ASGI):数据库查询同步用 User.objects.get(),异步用 await User.objects.aget(),建议在高并发 I/O 场景(代理、聊天)使用异步;视图同步用 def view(req),异步用 async def view(req),CPU 密集型任务保持同步;中间件需确保中间件栈支持异步。
数据库优化 针对 N+1 问题,建议检查 select_related(外键)和 prefetch_related(多对多);索引方面,JSONB 搜索用 GinIndex,标准查询用 BTree;批量操作对超过 100 条的项目使用 bulk_create 和 bulk_update。资料列出需升级到 database-optimizer 的红旗信号:在 for 循环内执行 ORM 查询;将 1 万行以上数据加载进内存(应使用 .iterator());使用未做参数绑定的“原始 SQL”(SQL 注入风险);Select for Update 造成的锁阻塞流量。
使用方式(工作流示例) HTMX 集成(服务端驱动 UI):目标是在不写 React 的情况下实现“无限滚动”或“点击编辑”。视图层面,在 contact_list 视图中判断 request.htmx,HTMX 请求返回局部模板(partials/contact_rows.html),否则返回完整页面;模板层面,输入框通过 hx-get、hx-trigger="keyup changed delay:500ms"、hx-target="#contact-rows" 触发服务端请求,表格 tbody 通过 {% include %} 引入局部模板。 异步 ORM 与视图:目标是使用 async/await 构建高吞吐 API 端点。示例中 dashboard_stats 视图通过 asyncio.gather 并行执行 User.objects.acount() 与 Order.objects.acount(),返回 JsonResponse。中间件兼容性需确保所有中间件 async_capable = True,若存在阻塞中间件则用 sync_to_async 包装。
常见模式与模板 服务层(业务逻辑):为保持视图与模型精简,OrderService.create_order 在 transaction.atomic() 内创建订单与订单项,并调用 PaymentGateway.charge。 自定义 Manager(查询逻辑):PublishedManager 的 get_queryset 过滤 status='PUBLISHED' 且 pub_date__lte=timezone.now(),模型上同时保留默认 objects 与自定义 published。 异步聊天(Channels):ChatConsumer 继承 AsyncWebsocketConsumer,在 connect 中 group_add 并 accept,disconnect 中 group_discard,receive 中通过 group_send 广播 chat_message。
集成模式 与 frontend-ui-ux-engineer:Django 开发者创建 HTMX 局部模板(_card.html),UI 开发者负责样式;协作定义 OOB Swaps(Out of Band)以更新多个页面区域;工具为 Tailwind CSS。 与 database-optimizer:Django 开发者记录慢查询,DB 优化者添加索引;协作分析 ORM 生成的 SQL 的 EXPLAIN ANALYZE 输出;工具为 Django Debug Toolbar。 与 devops-engineer:Django 开发者提供 Dockerfile,DevOps 配置 Gunicorn/Uvicorn;协作处理静态文件(Whitenoise 与 S3/CloudFront);工具为 Docker Compose。
限制 资料未提供安装命令、收费方式、价格、具体平台支持范围或效果保证;上述内容均为资料中明确给出的能力与流程,未涉及部分暂未提供。