Django专家成长路线知识点——AI教你学Django
Django专家成长路线知识点(超细致划分)
一、Python基础与进阶
1.1 基础语法
1.1.1 数据类型与变量
- int、float、str、bool
- list、tuple、set、dict
- 类型转换
- 字符串格式化(%, format, f-string)
1.1.2 运算符与表达式
- 算术、关系、逻辑、位运算符
- 成员、身份运算符
- 表达式优先级
1.1.3 流程控制
- if/elif/else 分支
- for、while 循环
- break、continue、else
- 列表/集合/字典推导式
1.1.4 函数
- 定义、调用、参数类型(位置、关键字、默认、可变)
- 返回值
- lambda 匿名函数
- global、nonlocal 关键字
- 递归
1.1.5 模块与包
- import、from-import、as
- name == “main”
- sys.path、包的初始化(init.py)
1.2 进阶语法
1.2.1 面向对象
- 类与对象、属性与方法
- 构造与析构函数
- 类方法、静态方法、实例方法
- 继承、多态、super
- 魔法方法(str、repr、getitem、setitem、call 等)
- 属性(property 装饰器,getter/setter)
1.2.2 高级特性
- 装饰器(函数、类、参数化装饰器)
- 生成器与yield、迭代器
- 上下文管理器(with)、自定义
1.2.3 异常与日志
- try/except/else/finally
- 自定义异常
- logging模块基本用法与配置
1.2.4 单元测试
- unittest、pytest
- mock、patch
- 测试覆盖率
1.2.5 虚拟环境与依赖管理
- venv、virtualenv、pipenv、conda
- requirements.txt、pip freeze
- pyproject.toml、poetry
二、Web基础
2.1 HTTP协议
2.1.1 请求与响应流程
- 请求报文结构、响应报文结构
- Host、User-Agent、Referer、Cookie、Set-Cookie
- MIME类型、Content-Type、Accept
2.1.2 请求方法
- GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS
- 幂等性与安全性
2.1.3 状态码
- 1xx、2xx、3xx、4xx、5xx 各类含义与常见场景
- 301/302/307/308 重定向差异
- 401/403/404/500/502/503等常见错误
2.2 前端基础
2.2.1 HTML
- 常用标签、表单、input类型、语义化
2.2.2 CSS
- 选择器、布局、响应式
2.2.3 JavaScript
- 基本语法、DOM操作、事件
- AJAX与fetch的基本用法
2.3 Web安全
- XSS、CSRF、SQL注入、Cookie劫持等基础概念
三、Django基础
3.1 框架入门
3.1.1 MTV架构原理
- Model(数据层)、Template(表示层)、View(业务逻辑层)协作流程
3.1.2 项目与App结构
- manage.py、settings.py、wsgi.py/asgi.py、app目录、migrations
3.2 配置文件
3.2.1 settings.py详解
- BASE_DIR、DEBUG、ALLOWED_HOSTS
- INSTALLED_APPS、MIDDLEWARE
- TEMPLATES、DATABASES、AUTH_PASSWORD_VALIDATORS
- STATIC_URL、STATICFILES_DIRS、MEDIA_URL、MEDIA_ROOT
- LOGGING配置
3.3 路由与URL分发
3.3.1 urls.py
- path、re_path、include
- 动态参数、命名空间、反向解析 reverse
- urlpatterns顺序和匹配机制
3.4 视图
3.4.1 函数视图(FBV)
- HttpRequest、HttpResponse
- request.GET、request.POST、request.session、request.user
- 渲染模板、重定向、404/500处理
3.4.2 类视图(CBV)
- View基类、as_view()
- 通用视图(ListView、DetailView、CreateView、UpdateView、DeleteView)
- mixin使用、自定义CBV
3.4.3 中间件
- 编写与注册、请求/响应处理、异常捕获
3.5 模板系统
3.5.1 模板语法
- 变量、过滤器、标签(if/for/block/extends/include/url/static)
- 模板继承、块定义、模板继承链
- 自定义标签与过滤器
3.5.2 静态与媒体文件
- static、media的引用方式、collectstatic 命令
- STATICFILES_STORAGE、存储到云等
3.6 ORM与模型
3.6.1 Model定义
- 字段类型、默认值、null/blank
- Meta类、unique、db_index、ordering
- 关系(ForeignKey、OneToOneField、ManyToManyField)
3.6.2 数据库迁移
- makemigrations、migrate
- 迁移文件结构、手动编辑
3.6.3 QuerySet操作
- all/filter/exclude/get
- values、values_list、annotate、aggregate、order_by、distinct
- F、Q对象,原生SQL执行
3.6.4 模型管理器
- 自定义Manager
- 自定义QuerySet方法链
3.7 管理后台
3.7.1 admin.py
- 注册模型、自定义显示/搜索/过滤/排序
- 内联编辑、actions、定制页面布局
- 权限与认证、只读字段
3.8 Shell操作
- manage.py shell、shell_plus
- ORM数据操作与调试
四、进阶开发
4.1 表单系统
4.1.1 Form/ModelForm
- 字段定义、widgets、验证规则
- 自定义clean()、字段级和表单级校验
- 错误提示、form.errors渲染
- csrf_token应用
4.2 用户系统
4.2.1 用户认证
- 内建User模型、AbstractUser/AbstractBaseUser扩展
- 登录/登出/注册流程
- 密码哈希、修改密码、找回密码
- 用户激活、邮箱验证
4.2.2 权限与授权
- 权限装饰器(@login_required, @permission_required)
- 群组与权限分配
- 对象级别权限(Django Guardian)
4.3 中间件与信号
4.3.1 自定义中间件
- 请求、响应、异常、视图调用前后处理
4.3.2 信号机制
- 信号类型(pre_save、post_save、pre_delete、post_delete、request_started等)
- 自定义信号,信号解耦业务
4.4 管理命令
- 编写自定义manage.py命令
- 数据导入导出、周期任务等批处理脚本
4.5 国际化与本地化
- 翻译文件(makemessages、compilemessages)
- 动态切换语言和时区
4.6 文件上传与处理
- FileField、ImageField
- 文件存储配置(本地、云)、图片处理
4.7 多数据库支持
- DATABASE_ROUTERS
- 跨数据库查询
4.8 分页、排序、搜索
- 内建分页器(Paginator)、自定义分页
- 搜索表单与高亮
4.9 邮件发送
- SMTP配置与邮件模板
- 异步邮件(集成Celery)
五、API开发与前后端分离
5.1 Django REST framework(DRF)
5.1.1 序列化器
- ModelSerializer、Serializer
- 字段映射、自定义字段、嵌套序列化
- validate/validate_方法
5.1.2 视图与路由
- APIView、GenericAPIView、ViewSet、GenericViewSet
- 路由自动注册、SimpleRouter、DefaultRouter
5.1.3 认证与权限
- Basic/Auth Token/JWT认证
- 自定义认证类
- 权限类(IsAuthenticated, IsAdminUser, 自定义权限)
5.1.4 限流与分页
- 限流策略(用户、IP、全局等)
- 分页器(PageNumber、LimitOffset、Cursor)
5.1.5 API文档
- drf-yasg、drf-spectacular、Swagger/OpenAPI
5.2 CORS与跨域
- django-cors-headers包
- CORS配置策略
5.3 WebSocket与异步
- Django Channels安装与配置
- 消息推送、聊天室、任务通知等
六、大型项目结构与优化
6.1 项目结构优化
6.1.1 多应用协作
- apps包化、复用、分层架构(service、repository、domain等)
6.1.2 配置优化
- 分环境配置(base/dev/prod)
- 环境变量管理(django-environ)
6.2 代码组织与规范
- 业务解耦、工具类、常量定义
- 注释、类型注解、docstring
6.3 日志与异常
- 日志多级配置、模块化
- 全局异常捕获、友好错误页面
- Sentry等第三方异常监控
6.4 测试与CI
- 单元测试、集成测试、Mock
- 测试用例覆盖率、持续集成工具集成
七、性能优化与安全
7.1 数据库优化
- 索引优化、查询分析、慢查询定位
- QuerySet优化、N+1问题、select_related/prefetch_related
- 数据分表分库
7.2 缓存系统
- 本地内存、Memcached、Redis集成
- per-view、per-site、低级缓存API
- 缓存失效策略
7.3 静态资源优化
- collectstatic命令、白名单、版本控制
- CDN集成与缓存
7.4 Web安全
- CSRF、XSS、SQL注入、Clickjacking防护
- 安全中间件(SecurityMiddleware、XFrameOptionsMiddleware、ContentSecurityPolicy)
- HTTPS配置、HSTS、密码复杂度
八、部署与运维
8.1 生产环境部署
8.1.1 WSGI与ASGI
- Gunicorn、uWSGI、Daphne、uvicorn
8.1.2 Web服务器
- Nginx/Apache反向代理与负载均衡
- 静态/媒体文件分离
8.1.3 容器化与云部署
- Dockerfile、docker-compose.yml编写
- k8s部署、云平台环境变量配置
8.2 配置与安全
- 配置文件加密、环境变量与密钥管理
- 日志轮转与自动化清理
8.3 监控与自动化
- Prometheus、Grafana、ELK日志收集
- Sentry异常监控
- 自动运维(Fabric、Ansible)
九、常用第三方库与扩展
9.1 API与异步
- Django REST framework
- Django Channels
- Celery异步任务、定时任务
9.2 认证与权限
- django-allauth(第三方登录)
- django-guardian(对象级权限)
- djangorestframework-simplejwt
9.3 文件与富文本
- django-ckeditor、django-tinymce
- django-storages(S3、OSS、七牛)
9.4 其他
- 站内信、评论、投票、标签、消息通知等常用插件
- Debug Toolbar调试工具
十、软技能与最佳实践
10.1 代码与文档
- PEP8、黑色格式化器(black)、isort
- 项目注释、文档生成(Sphinx)
10.2 团队协作
- Git工作流、PR/Code Review
- 需求分析与设计文档撰写
- 代码审查与安全审计
10.3 开源与社区
- 官方文档、源码阅读
- 社区问答、参与贡献、跟进新特性
10.4 项目维护
- 版本管理与发布策略
- 线上巡检与故障应急
- 持续迭代、技术债管理
参考资料
- Django 官方文档
- Django REST framework
- Django Girls 教程
- Real Python Django 教程
- Django 源码解读/社区
如需具体章节内容、实战案例、练习题或学习顺序建议,欢迎随时提问!