Files
JobRadar/docs/lessons/01_Agent工程基线/1_1_Django项目配置与开发生产环境拆分/practice.py
T

44 lines
2.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 第1课练习:Django项目配置与开发/生产环境拆分
#
# 练习目标:
# 1. 将当前单文件settings.py拆分为base、development和production三个配置模块。
# 2. 让本地管理命令默认使用开发配置,让ASGI和WSGI默认使用生产配置。
# 3. 验证生产密钥缺失时快速失败,提供临时变量后能够通过普通系统检查。
#
# 操作要求:
# 1. 在JobRadar包内创建settings目录和__init__.py。
# 2. 把公共配置迁移到base.py,并根据新目录层级修正BASE_DIR。
# 3. 在development.py中配置仅限本地使用的SECRET_KEY、DEBUG和ALLOWED_HOSTS。
# 4. 在production.py中从外部读取DJANGO_SECRET_KEY、DJANGO_ALLOWED_HOSTS和
# DJANGO_CSRF_TRUSTED_ORIGINS,固定关闭DEBUG并配置HTTPS安全项。
# 5. 调整manage.py、asgi.py和wsgi.py使用正确的默认配置模块。
# 6. 确认全部配置迁移后再删除旧settings.py。
#
# 预期结果:
# 1. 开发配置执行Django系统检查时通过。
# 2. 未设置DJANGO_SECRET_KEY时,生产配置检查明确失败。
# 3. 设置三个临时生产变量后,生产配置普通检查通过。
# 4. 项目根目录仍是BASE_DIR,SQLite和templates路径没有移动到JobRadar包中。
# 5. Git变更中不存在真实密钥、密码或Cookie。
#
# 自检问题:
# 1. DJANGO_SETTINGS_MODULE保存的是文件路径还是Python模块路径?
# 2. 为什么生产配置不应该为SECRET_KEY提供默认值?
# 3. 为什么DEBUG=False时必须正确设置ALLOWED_HOSTS?
# 4. 为什么manage.py和ASGI/WSGI选择不同的默认配置?
# 5. 为什么本课暂时不配置PostgreSQL和Agents SDK?
#
# 验收命令:
# python manage.py check --settings=JobRadar.settings.development
# python manage.py check --settings=JobRadar.settings.production
# python manage.py check --deploy --settings=JobRadar.settings.production
# python manage.py makemigrations --check --dry-run --settings=JobRadar.settings.development
# git diff --check
#
# 验收标准:
# 1. 能解释三个配置文件各自负责什么。
# 2. 能解释BASE_DIR层级变化。
# 3. 能复现生产密钥缺失时的失败,并确认这是预期安全行为。
# 4. 能区分普通系统检查错误与部署安全告警。
# 5. practice.py保持纯注释,不在此文件填写答案或运行记录。