当然。阅读 Django 项目前,先掌握这些概念就够用了:
核心概念
- Django:Python 的 Web 框架,主打“自带电池”(ORM、后台管理、认证、路由等均内置)。
- 项目(project):整个服务的配置容器,通常包含
settings.py、根路由urls.py、wsgi.py/asgi.py。 - 应用(app):按业务拆分的模块,如用户、订单、资产;通常含
models.py、views.py、urls.py、admin.py。 - MVT 模式:
Model管数据,View处理请求和业务,Template渲染页面;API 项目通常直接返回 JSON,不一定有模板。
请求链路
HTTP 请求
→ 根 urls.py
→ 应用 urls.py
→ view(函数或类)
→ serializer / service / model
→ 数据库
→ HTTP / JSON 响应
看接口代码时,通常从路由入手,追到 View,再看它调用的序列化器、业务逻辑与模型。
关键文件
settings.py:应用注册、数据库、缓存、中间件、认证、环境配置。urls.py:URL 与视图的映射,例如path("users/", ...)。views.py:请求入口;函数视图用def,类视图常继承 Django 或 DRF 的基类。models.py:数据库表的 Python 定义。一个models.Model子类通常对应一张表。migrations/:数据库结构变更记录;修改模型后生成并执行迁移。admin.py:Django 管理后台中注册和配置模型。manage.py:项目命令入口,如runserver、migrate、shell。
ORM(数据库操作)
Django 用 ORM 将 Python 对象映射为数据库记录:
User.objects.get(id=1) # 查询一条
User.objects.filter(is_active=True) # 查询集合
User.objects.create(username="alice") # 新增
user.save() # 更新
user.delete() # 删除
常见字段关系:
ForeignKey:多对一,例如多个订单属于一个用户。OneToOneField:一对一,例如用户与扩展资料。ManyToManyField:多对多,例如用户与角色。
配置与启动
INSTALLED_APPS:启用哪些 Django 应用。MIDDLEWARE:请求/响应必经的处理链,如认证、CORS、异常处理。DATABASES:数据库连接信息。DEBUG:开发环境通常为True,生产必须关闭。python manage.py migrate:应用数据库迁移。python manage.py runserver:本地启动开发服务。
若项目使用 Django REST Framework(DRF)
后端 API 项目很常见:
Serializer:负责模型对象与 JSON 之间的转换及参数校验。APIView/ViewSet:处理 HTTP 方法或一组资源操作。router:自动为ViewSet生成 REST 路由。permission_classes:定义接口权限。authentication_classes:定义认证机制,例如 Token/JWT。Response:返回 JSON 响应。
一个典型 API 的阅读顺序:
urls.py / router
→ ViewSet 或 APIView
→ Serializer(入参校验、出参格式)
→ Model / Service(持久化与业务规则)
→ Permission / Authentication(权限与身份)
最值得优先关注的坑
- Django 的 QuerySet 是惰性执行的:真正遍历、切片或序列化时才可能查库。
- 关联字段访问可能带来 N+1 查询;注意
select_related()与prefetch_related()。 - 区分
request.GET(查询参数)、request.POST(表单)和 API 中的request.data(DRF JSON 请求体)。 - 数据库结构以 migration 为准,不只看当前
models.py。 - 配置可能从环境变量、
.env或按环境拆分的 settings 文件读取。