【文件属性】:
文件名称:User对象-libmodbus源码解析
文件大小:7.37MB
文件格式:PDF
更新时间:2021-06-24 08:00:44
PDF
11.3 User对象
User对象是这个身份验证系统的核心,通常用于标识与网站交互的人,还用于限制访问、记录用户资料,以
及把内容与创建人关联起来,等等。在 Django 的身份验证框架中,只有一个用户类存在,因此 superusers
或管理后台的 staff用户只是设定了特殊属性的用户对象,而不是分属不同类的用户对象。默认用户主要有
下面几个属性:
• username
• password
• email
• first_name
• last_name
11.3.1创建超级用户
超级用户使用 createsuperuser命令创建:
python manage.py createsuperuser --username=joe --email=joe@example.com
上述命令会提示你输入密码。输入密码后,立即创建指定的超级用户。如果没有指定 --username或 --email
选项,会提示你输入这两个值。
11.3.2创建用户
创建和管理用户最简单、最不易出错的方式是使用 Django 管理后台。Django 还内置了登录、退出和修改密
码的视图和表单。本章后面会说明如何通过管理后台和普通的表单管理用户,现在先来看如何直接验证用户
的身份。
创建用户最直接的方式是使用 create_user()辅助函数:
>>> from django.contrib.auth.models import User
>>> user = User.objects.create_user('john', 'lennon@thebeatles.com', 'johnpassword')
# 此时,user 是一个 User 对象,而且已经保存到数据库中
# 如果想修改其他字段的值,可以继续修改属性
>>> user.last_name = 'Lennon'
>>> user.save()
11.3.3修改密码
Django 不在用户模型中存储原始(明文)密码,只存储密码的哈希值。因此,不要试图直接处理用户的密
码。正是因为这样,创建密码才要使用一个辅助函数。如果想修改用户的密码,有两个选择:
1. 在命令行中使用 manage.py changepassword username命令修改用户的密码。这个命令会提示你输入两
次密码。如果两次输入的内容匹配,立即修改密码。如果不指定用户名,这个命令会尝试修改与当前
系统用户的用户名一致的那个用户的密码。
2. 还可以通过编程方式,使用 set_password()方法修改:
>>> from django.contrib.auth.models import User
>>> u = User.objects.get(username='john')
156 - 第 11 章 在 Django 中验证用户的身份