docs(course): 建立Agent学习路线并新增第一课

This commit is contained in:
bruce
2026-08-28 15:44:21 +08:00
parent ddab9242c7
commit 38f1b15d1c
14 changed files with 870 additions and 142 deletions
@@ -0,0 +1,43 @@
# 第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保持纯注释,不在此文件填写答案或运行记录。