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
  • 魔法方法(strreprgetitemsetitemcall 等)
  • 属性(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结构

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 项目维护

  • 版本管理与发布策略
  • 线上巡检与故障应急
  • 持续迭代、技术债管理

参考资料


如需具体章节内容、实战案例、练习题或学习顺序建议,欢迎随时提问!

相关推荐
上进小菜猪5 小时前
把 KES 集群交给 Kubernetes 的九十天:一个 DBA 的试用实录
后端
两点王爷6 小时前
PostgreSQL 常用 SQL 语句与 GIS 相关函数详解
数据库·后端
麻雀飞吧6 小时前
先判断工具用来学习、开发还是执行
人工智能·python
考虑考虑7 小时前
Springboot环境变量占位符语法
spring boot·后端·spring
人邮异步社区7 小时前
学习Python的最佳学习路径是什么?
python·程序员
步行cgn8 小时前
Spring 基于 XML 的自动装配:byName 详解
java·后端·spring
troy1289 小时前
Python 基础语法(九):Django/Flask/FastAPI 三大 Web 框架详细对比解析
python·jupyter·django·flask·github·fastapi
jzshmyt9 小时前
我用 Python 从零“生成“了一个宇宙,然后让它观察自己(v14)
人工智能·pytorch·python·numpy·matplotlib·空间计算·scipy
高洁0110 小时前
大模型的幻觉怎么治
人工智能·深度学习·django·transformer·tornado
RISCV_Explorer10 小时前
RISC-V启动与运行时规范机制解析——BRS约定、HSM多核启动与设备树要求
后端·risc-v