
前言

上一篇《Django篇 06》中,我们掌握了Django表单系统——能优雅地处理用户输入并存入数据库了。但还有一个核心问题没有解决:我们如何知道\”谁\”在操作?谁发的文章?谁提交的评论?每个用户只能修改自己的文章吗?
这就是用户认证系统(Authentication)要解决的问题。用户认证是Web应用中最重要的基础设施之一——它负责识别\”你是谁\”(身份认证)和决定\”你能做什么\”(权限控制)。如果你的博客没有用户系统,所有人都能随意发表、修改、删除任何文章——这显然是不行的。
Django内置了非常完善的用户认证系统,从用户模型、密码哈希、登录/退出、权限组到装饰器保护视图。你不需要从零实现——Django已经写好了一切。作为全栈开发者,你需要做的是:理解这个系统怎么工作,然后正确地使用它。
本节核心学习内容:
文章目录
- 前言
- 一、Django内置User模型
-
- 1.1 不用从零实现用户系统
- 1.2 内置User的字段一览
- 1.3 密码安全:永远不存明文
- 二、用户注册
-
- 2.1 使用Django内置的UserCreationForm
- 2.2 注册视图
- 2.3 注册模板
- 三、用户登录与退出
-
- 3.1 Django认证体系的核心函数
- 3.2 登录视图
- 3.3 退出视图
- 3.4 登录模板
- 3.5 模板中使用用户信息
- 四、登录保护
-
- 4.1 login_required装饰器:函数视图
- 4.2 LoginRequiredMixin:类视图
- 4.3 在视图中手动检查登录状态
- 五、自定义用户模型
-
- 5.1 什么时候需要自定义
- 5.2 方式一:OneToOneFile关联(已开发项目推荐)
- 5.3 方式二:继承AbstractUser(新项目推荐)
- 六、用户中心:修改密码
- 七、综合实战:用户注册→登录→中心完整视图
- 八、常见误区与避坑指南
- 九、核心总结:用户认证速查表
-
- 内置User模型
- 认证函数
- 登录保护
- 创建用户正确方式
- 十、专栏订阅
一、Django内置User模型

1.1 不用从零实现用户系统
Django已经为你准备好了一个完整的User模型(位于django.contrib.auth.models.User)。打开shell看一眼它有哪些字段:
from django.contrib.auth.models import User
# 查看User模型的字段
user = User.objects.first




