Django
2026/3/20大约 3 分钟
Django 学习指南
Django 是一个高级 Python Web 框架,它鼓励快速开发和简洁、实用的设计。由经验丰富的开发者构建,Django 能够处理 Web 开发中的大部分繁琐工作,让你专注于编写应用程序,而无需重新发明轮子。
文档目录
基础篇
Django 基础使用 - 框架简介、环境搭建、项目结构、MTV 架构、配置详解
模型与 ORM - 模型定义、字段类型、关联关系、QuerySet API、高级查询、数据库迁移
视图与 URL 路由 - 函数视图、类视图、URL 配置、请求响应处理、通用视图
模板系统 - 模板语法、模板继承、上下文处理、自定义标签与过滤器
进阶篇
表单处理 - Form 类、ModelForm、表单验证、文件上传、Formset
Admin 后台管理 - Admin 配置、自定义 Admin、权限管理、扩展 Admin 功能
用户认证与权限 - 用户系统、登录注册、权限控制、自定义用户模型、OAuth 集成
中间件与信号 - 中间件原理、自定义中间件、信号机制、解耦架构设计
高级篇
RESTful API 开发 - Django REST Framework、序列化器、视图集、认证授权、API 文档
缓存与性能优化 - 缓存策略、数据库优化、查询优化、异步任务、性能监控
测试与调试 - 单元测试、集成测试、测试覆盖率、调试工具、日志系统
部署与生产环境 - Gunicorn/uWSGI、Nginx 配置、Docker 部署、CI/CD、监控运维
专题篇
快速开始
# 创建虚拟环境
python -m venv venv
source venv/bin/activate # Linux/Mac
# venv\Scripts\activate # Windows
# 安装 Django
pip install django
# 创建项目
django-admin startproject myproject
cd myproject
# 创建应用
python manage.py startapp myapp
# 运行开发服务器
python manage.py runserver
访问 http://127.0.0.1:8000/ 查看 Django 欢迎页面。
核心特性
| 特性 | 说明 |
|---|---|
| MTV 架构 | Model-Template-View 清晰的分层设计 |
| 强大的 ORM | 对象关系映射,支持多种数据库 |
| 自动 Admin | 自动生成功能完善的管理后台 |
| 安全性强 | 内置 CSRF、XSS、SQL 注入防护 |
| 可扩展性 | 丰富的第三方库生态系统 |
| 完善文档 | 官方文档详尽,社区活跃 |
| 电池齐全 | 内置用户认证、会话、缓存等功能 |
| 国际化支持 | 完善的 i18n 和 l10n 支持 |
Django 版本
| 版本 | Python 版本 | 发布日期 | 支持状态 |
|---|---|---|---|
| 5.1 | 3.10+ | 2024.08 | 当前版本 |
| 5.0 | 3.10+ | 2023.12 | 安全更新 |
| 4.2 LTS | 3.8+ | 2023.04 | LTS 支持到 2026 |
| 3.2 LTS | 3.6+ | 2021.04 | LTS 支持到 2024 |
学习路线
基础入门 → 模型ORM → 视图路由 → 模板系统 → 表单处理 → Admin后台
↓
用户认证 → 中间件信号 → REST API → 缓存优化 → 测试调试 → 部署运维
↓
安全实践 → 实战项目 → 源码研究 → 架构设计 → 性能调优 → 持续精进
项目结构示例
myproject/
├── manage.py # 项目管理工具
├── myproject/
│ ├── __init__.py
│ ├── settings.py # 项目配置
│ ├── urls.py # 根URL配置
│ ├── asgi.py # ASGI入口
│ └── wsgi.py # WSGI入口
├── myapp/
│ ├── __init__.py
│ ├── admin.py # Admin配置
│ ├── apps.py # 应用配置
│ ├── models.py # 数据模型
│ ├── views.py # 视图函数
│ ├── urls.py # 应用URL配置
│ ├── forms.py # 表单定义
│ ├── tests.py # 测试用例
│ ├── migrations/ # 数据库迁移
│ └── templates/ # 模板文件
├── static/ # 静态文件
├── media/ # 用户上传文件
├── templates/ # 全局模板
└── requirements.txt # 依赖列表