LoongLee's blog

Django

Django

定义

Django 是一个基于 Python 的高级 Web 框架,采用 "batteries-included" (电池包含) 哲学,提供完整的 Web 开发功能。

核心特性

  • ORM (对象关系映射):抽象数据库操作
  • 自动管理后台:快速构建内容管理系统
  • 表单处理:内置表单验证和渲染
  • 用户认证:完整的认证和授权系统
  • 模板引擎:强大的模板语言
  • 安全特性:防范 CSRF、SQL 注入、XSS 等

架构模式:MVT

Django 采用 Model-View-Template 架构:

  • Model:数据层,定义数据结构和业务规则
  • View:逻辑层,处理请求和响应
  • Template:表现层,定义用户界面

Django 设计哲学

  • DRY原则:不要重复自己
  • 松耦合高内聚:组件独立但协作
  • 快速开发:少代码实现更多功能
  • 显式优于隐式:代码意图明确

通用类视图

  • ListView:显示对象列表
  • DetailView:显示单个对象详情
  • CreateView:创建对象的表单处理
  • UpdateView:更新对象的表单处理
  • DeleteView:删除对象的确认和删除

Django Ninja

Django Ninja 是基于 Django 的现代 API 框架:

  • 使用 Pydantic 进行数据验证
  • 自动生成 OpenAPI/Swagger 文档
  • 支持异步视图
  • 类型安全的 API 开发

最佳实践

  1. 业务逻辑放在模型或服务层,不在视图中
  2. 使用 select_related/prefetch_related 优化查询
  3. 合理使用缓存
  4. 定期运行 migrations
  5. 使用环境变量管理配置

相关技术

  • Python - 基础编程语言
  • Django Ninja - API 开发框架
  • PostgreSQL - 推荐的数据库
  • Gunicorn - 生产环境 WSGI 服务器
  • Docker - 容器化部署

录入自: Django开发实践笔记