Django 学习路线图
第一阶段:基础准备(打好根基)
- Python基础
- 必须掌握变量,数据类型,条件语句,循环,函数,模块和包
- 强烈建议掌握:面向对象编程、装饰器、异常处理。因为 Django 是基于类的视图和模型,OOP 概念至关重要。
- 理解web基础
- HTTP 协议:GET/POST 请求、状态码。
- MVC 设计模式:Django 自称是 MTV 模式,但本质与 MVC 相似。
- M: Model,负责处理数据和数据库。
- T: Template,负责如何展示数据(HTML)。
- V: View,负责业务逻辑,作为 Model 和 Template 的桥梁。
第二阶段:核心概念(初窥门径)
目标是创建一个简单的、可运行的 Django 项目。
-
项目 vs. 应用
- 项目:是整个网站的配置集合。
- 应用:是一个专门的功能模块。一个项目可以包含多个应用。
- 命令:
bash
创建项目
django-admin startproject myproject
进入项目目录
cd myproject
创建应用
python manage.py startapp myapp
-
视图和 URL 配置
- 视图 是处理用户请求并返回响应的 Python 函数或类。
- URLconf 是将 URL 模式映射到视图的配置。
- 动手实践:创建一个视图函数,返回 "Hello, World!",并将其配置到 urls.py 中,在浏览器中访问。
-
模型和数据库
- 这是 Django 最强大的部分之一。
- 模型 是一个 Python 类,它定义了你的数据模型,并对应数据库中的一张表。
- ORM:你不需要写 SQL,直接用 Python 代码操作数据库。
- 动手实践:在 models.py 中定义一个简单的模型(如 Article),进行数据库迁移 (makemigrations, migrate),然后在 Django Shell 中练习对象的创建、查询、更新和删除。
-
管理后台
- Django 自带一个强大的、开箱即用的管理后台。
- 动手实践:创建超级用户 (createsuperuser),将你的模型注册到 admin.py 中,然后登录 /admin 后台,体验如何管理数据。
-
模板
- 用于生成动态的 HTML 页面。
- 学习 Django 模板语言:变量 {{ variable }}、标签 {% tag %}、过滤器。
- 动手实践:创建一个模板,在视图中使用它,并将模型中的数据传递到模板中进行渲染。
第三阶段:核心功能深化(掌握精髓)
在理解了基础之后,开始构建更复杂的功能。
-
表单
-
Django 表单 用于处理用户输入,包括验证和数据清洗。
-
学习 forms.Form 和 forms.ModelForm,后者能直接从模型生成表单,极大提高效率。
-
动手实践:创建一个表单,让用户在前端提交数据,并在后端视图函数中处理这个表单。
-
-
用户认证系统
- Django 内置了完整的用户注册、登录、登出、权限管理功能。
- 动手实践:使用 django.contrib.auth 实现一个简单的登录/登出功能。
-
类视图
- 比函数视图更强大、更结构化,便于代码复用。
- 从基础的 ListView, DetailView, CreateView, UpdateView 开始学起。
- 动手实践:将之前用函数视图写的功能,用类视图重写一遍。
第四阶段:进阶和最佳实践(走向专业)
- 静态文件处理
学习如何管理 CSS、JavaScript 和图片文件。
- 部署
这是将你的项目放到线上服务器让所有人访问的关键一步。
-
常见组合:Django + Gunicorn + Nginx。
-
云平台:Heroku, PythonAnywhere, Vercel 等提供了相对简单的部署方式。
-
动手实践:尝试将你的第一个博客项目部署到免费的云平台上。
- REST API
现代 Web 开发的核心。学习使用 Django REST Framework 来为你的应用创建 API。
理解序列化、视图集、路由等概念。
-
高级主题
-
中间件
-
信号
-
测试:编写单元测试和集成测试。
-
安全性:理解 CSRF、XSS、SQL 注入等,以及 Django 如何提供内置防护。
-
性能优化:数据库查询优化、缓存。
-
学习资源推荐
-
官方文档:Django 官方文档
-
这是最好的学习资料,没有之一! 教程部分写得非常清晰,请务必跟着做一遍。
经典书籍:
-
《Django for Beginners》
-
《Two Scoops of Django》(最佳实践圣经)
视频课程:
在 Bilibili、YouTube 等平台搜索 "Django 教程",有很多优秀的免费中文课程。
项目驱动学习:
不要只看不练。从简单到复杂,尝试做以下项目:
-
个人博客:最经典的入门项目,涵盖 CRUD 所有操作。
-
待办事项列表
-
简单的投票系统
-
电子商务网站:包含商品展示、购物车、用户订单等复杂功能。
一个简单的实战流程示例
假设你要创建一个博客:
-
startproject myblog
-
startapp articles
-
在 models.py 中定义 Article 模型(字段:title, content, created_time)。
-
执行 makemigrations 和 migrate。
-
在 admin.py 中注册 Article 模型,并创建超级用户。
-
在 views.py 中写一个 article_list 视图函数,查询所有文章。
-
创建一个模板 templates/article_list.html 来循环显示文章。
-
配置 urls.py,将根路径映射到 article_list 视图。
-
运行服务器 runserver,在浏览器查看。
总结: Django 的学习曲线前期稍陡,但一旦掌握了其核心设计哲学,开发效率会非常高。记住 "不要重复你自己" 是 Django 的理念。多动手、多查阅官方文档,你一定能掌握它。祝你学习顺利!