当前位置: 首页 > news >正文

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结构
  • 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 源码解读/社区

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

http://www.dtcms.com/a/272403.html

相关文章:

  • 【PTA数据结构 | C语言版】顺序栈的3个操作
  • 【深度学习系列--经典论文解读】Gradient-Based Learning Applied to Document Recognition
  • LINUX710 MYSQL
  • linux-用户与用户组管理
  • serialVersionUID
  • 配置 msvsmon.exe 以无身份验证启动
  • 力扣打卡第23天 二叉搜索树中的众数
  • 算法题(171):组合型枚举
  • Shusen Wang推荐系统学习 --召回 矩阵补充 双塔模型
  • 深度探索:实时交互与增强现实翻译技术(第六篇)
  • Win10用camke+gcc编译opencv库报错error: ‘_hypot‘ has not been declared in ‘std‘
  • 什么是 领域偏好学习(DPO)与多目标强化学习(PPO)
  • 在 Ubuntu 22 部署 vLLM + Qwen3 32B 模型
  • EPLAN 电气制图(六):电机正反转副勾主电路绘制
  • STM32第十九天 ESP8266-01S和电脑实现串口通信(2)
  • 代理模式——Java
  • 机器学习14——线性回归
  • 前端项目vue3项目集成eslint@9.x跟prettier
  • android TabLayout 标题栏切换 事件拦截
  • 【前端】jQuery动态加载CSS方法总结
  • 2025Datawhale AI夏令营第一期-(1)用AI预测新增用户
  • 01-RabbitMQ消息队列
  • ResolvableType 解密Java泛型反射
  • day01 - 数组part01
  • 【高等数学】第三章 微分中值定理与导数的应用——第二节 洛必达法则
  • 关闭实时防护
  • Qt Creator控件及其用途详细总结
  • LeetCode经典题解:49、字母异位词分组
  • 游戏开发问题记录
  • 数字孪生技术为UI前端赋能:实现产品设计的快速原型验证