Django 框架详解
664 字约 2 分钟
2026-05-20
这页把 organise 中较长的 Django 框架笔记整理成知识库版本。原始材料包含大量 HTML 模板和项目代码片段,已保留在 archive/organise;这里聚焦 Django 项目结构和学习路线。
Django 适合解决什么问题
Django 是一个“电池齐全”的 Python Web 框架,适合后台管理系统、内容管理系统、传统服务端渲染网站和需要快速搭建 CRUD 的业务应用。它的优势是项目结构完整、ORM 成熟、Admin 强大、生态稳定。
项目结构
manage.py:项目命令入口,用于启动服务、迁移数据库和创建应用。- 项目同名目录:放全局配置、路由、ASGI/WSGI 入口。
settings.py:配置数据库、应用注册、中间件、模板、静态文件和时区。urls.py:项目级路由分发。views.py:处理请求并返回响应。models.py:定义数据库表结构和 ORM 模型。templates/:放 HTML 模板。static/:放 CSS、JavaScript、图片等静态资源。
核心流程
- 创建项目:使用 Django 命令生成项目骨架。
- 创建应用:按业务模块拆分 app。
- 注册应用:把 app 加入
INSTALLED_APPS。 - 定义模型:用 Model 描述数据表。
- 数据迁移:生成并执行 migration。
- 配置路由:项目路由分发到应用路由。
- 编写视图:处理请求参数、调用模型、返回响应。
- 渲染模板:把数据传入模板形成页面。
- 后台管理:注册模型到 Admin,快速管理数据。
ORM 重点
- 查询所有:
Model.objects.all()。 - 条件过滤:
filter()、exclude()。 - 获取单条:
get(),要注意不存在或多条结果的异常。 - 字段选择:
values()、values_list()。 - 排序:
order_by()。 - 创建:
create()或实例化后save()。 - 更新:查询后修改并
save(),或批量update()。 - 删除:调用
delete()。
模板重点
Django 模板用于把后端数据渲染成 HTML。常用能力包括变量插值、for 循环、if 判断、模板继承、静态资源引用和过滤器。模板里应尽量少写复杂业务逻辑,复杂逻辑放在视图或服务层。
学习路线
先完成一个最小 CRUD:模型、迁移、路由、视图、模板和 Admin。随后再补表关系、表单、登录鉴权、中间件、分页、文件上传、缓存和部署。
和 FastAPI 的区别
Django 偏完整 Web 应用,内置 ORM、Admin、模板和权限体系;FastAPI 偏接口服务,强调类型标注、自动文档、异步能力和轻量组合。需要后台和页面时优先 Django,需要 API 服务时优先 FastAPI。