本节摘要:Django 的"杀手锏"是自带管理后台——模型注册后就有可用的增删改查界面。本节讲清后台的使用、静态文件处理、以及生产部署的要点(关闭调试、用正式服务器、静态文件)。
阅读完本节,你应当能够:
"Django 为什么开发快?"——一半功劳是自带管理后台:模型注册后,增删改查界面自动生成,连管理界面都不用写。做后台系统,这是碾压级优势。
后台与部署的路径:
# admin.py from django.contrib import admin from .models import User admin.site.register(User)
python manage.py createsuperuser # 建管理员 # 访问 /admin 登录后台
💡 关键直觉:注册即后台——一行 admin.site.register,模型就有了完整管理界面。这是 Django"电池齐全"的最直观体现。
| 要点 | 说明 |
|---|---|
| 关调试 | DEBUG=False |
| 正式服务器 | Gunicorn 等 |
| 静态文件 | collectstatic |
| 数据库 | 换正式库 |
开发:runserver(仅开发用) 生产:Gunicorn + Nginx 或容器化
⚠️ 常见坑:生产环境还开 DEBUG。DEBUG=True 会暴露报错详情,等于给攻击者看地图——上线必关。
DEBUG 已关 密钥走环境变量 静态文件已收集 数据库已迁移
Django 主线走完。第 4 章换 JavaScript 阵营——Node.js 快速入门。
Q1:Django 后台为什么是"注册即用"?
因为 Django 内置了一套基于模型自动生成的管理界面。你在 admin.py 里调用 admin.site.register(模型类),框架就根据模型字段自动生成列表页、详情页、增删改查表单。管理员创建后登录后台,就能可视化地管理数据,不用写一行后台代码。对内容型项目(文章、商品、配置)来说,这是"数据管理零成本"的巨大优势。
Q2:生产部署和开发 runserver 有什么本质区别?
开发服务器(runserver)为调试而生:代码热重载、详细报错页、不设防的调试信息;生产环境需要的是稳定、性能、安全。所以生产必须:关闭 DEBUG(否则报错详情暴露给攻击者)、换正式的 WSGI 服务器(Gunicorn)、配反向代理(Nginx)、收集静态文件、用生产数据库。这套"开发一套、生产另一套"的思维,是每个后端开发者的必修课。
Q3:为什么 DEBUG=True 上线很危险?
DEBUG=True 时,Django 会把完整的报错堆栈、配置信息、数据库连接信息展示在页面上。攻击者看到这些信息,等于拿到了"系统地图",可以针对性发起攻击。所以上线前必须设置 DEBUG=False。同时 SECRET_KEY(加密密钥)也要走环境变量,不能留在代码仓库里——这两个是最基本的安全底线。
Q4:静态文件(CSS、JS、图片)在生产怎么处理?
开发时 Django 直接从应用目录提供静态文件,但生产环境性能不够,需要把静态文件"收集"到统一目录(collectstatic 命令),再由 Nginx 这类 Web 服务器直接托管。所以部署清单里有一项"静态文件已收集"。理解这个流程,你就知道为什么前端资源在生产环境和开发环境的表现会不一样。
动手建议:做一次"后台 + 部署"的完整演练:注册一个模型到后台,创建管理员账号,登录后台增删改查几条数据,体验"注册即后台"。然后把 DEBUG 关掉、尝试访问一个不存在的地址看报错是否被隐藏,再配置环境变量读取密钥。最后把 runserver 和正式服务器(Gunicorn)的启动方式都试一遍,对比输出差异。这套演练做完,你对 Django"开发快、上线稳"的完整链路就有真实体感了。
本节练习的目标,是体验 Django 最独特的后台能力,并为上线做一次完整准备。步骤如下:
第一步,注册模型。在 admin.py 里注册你已经写好的模型。验收标准:注册代码存在且无语法错误。
第二步,创建管理员账号。执行创建管理员命令,设置用户名、邮箱、密码。验收标准:命令成功执行。
第三步,登录后台。启动开发服务器,访问后台地址,用刚创建的账号登录。验收标准:能看到后台界面。
第四步,管理数据。在后台界面里,对你的模型做增删改查:新增一条、修改一条、删除一条。观察界面自动生成了表单和列表。验收标准:你能在不写一行后台代码的情况下管理数据——这就是"注册即后台"的体验。
第五步,关闭调试模式。在配置里把 DEBUG 设为 False,同时把允许访问的主机配置好。访问一个不存在的地址,观察错误页是否变成了简洁的页面(不再暴露详细报错)。验收标准:调试信息不再外泄。
第六步,做部署检查清单。对照本节的清单逐项确认:调试已关、密钥走环境变量、静态文件已收集、数据库已迁移。验收标准:清单项全部能回答"是"或"已配置"。
六步走完,你既体验了 Django 后台的便利,也完成了上线前的安全检查。这两项能力,正好对应 Django"开发快、上线稳"的两面。
Django 后台是"注册即用"的管理神器,值得亲手登录体验一次;部署的核心是"关调试、换服务器、收静态文件"。后台让你开发快,安全检查让你上线稳。