Django User对象全解析:创建、修改与认证流程
本文深入解析Django认证框架中的User对象。内容涵盖User对象的核心作用,包括使用create_user()创建普通用户、通过createsuperuser命令生成超级管理员,以及利用set_password()安全修改密码。同时详细讲解authenticate()函数的认证机制与is_active状态检查,帮助开发者掌握Django用户管理的完整流程。
Django User对象概述
User对象
User对象构成了Django认证系统的核心基础。它通常代表与网站进行交互的具体用户,主要功能包括限制访问权限、存储注册用户信息以及将内容关联至创建者。在Django的认证框架设计中,仅存在一种类型的用户模型。所谓的“超级用户”或“管理员(staff)”并非独立的用户类型,而是具备特定属性集合的普通User对象实例。
创建普通用户
创建users
创建用户最直接且推荐的方式是使用create_user()辅助函数。该函数会自动处理密码哈希等安全细节,确保存储的安全性。
>>> from django.contrib.auth.models import User
>>> user = User.objects.create_user('john', 'lennon@thebeatles.com', 'johnpassword')
from django.contrib.auth.models import User
def create_user(request):
#auth_user
# user = User.objects.create_user('john', 'lennon@thebeatles.com', 'johnpassword')
#superuser python manage.py createsuperuser --username=joe --email=joe@example.com
u = User.objects.get(username='john')
u.set_password('new password')
u.save()
return HttpResponse("success-----%s"%u)
创建成功后见数据库auth_user表

创建超级管理员
创建superusers
对于需要更高权限的管理员账户,推荐使用createsuperuser命令进行创建。
$ python manage.py createsuperuser --username=joe --email=joe@example.com
或者
$ python manage.py createsuperuser
接下来依次输入用户密码即可 成功后见auth_user表
修改用户密码
修改密码
>>> from django.contrib.auth.models import User
>>> u = User.objects.get(username='john')
>>> u.set_password('new password')
>>> u.save()
成功后见auth_user表,密码已经改变

用户认证流程
认证Users
authenticate(**credentials)[source]
要验证给定用户名和密码的有效性,请使用authenticate()函数。该函数接收关键字参数形式的凭证,在默认配置下,这些参数为username和password。如果提供的密码与指定用户名匹配且有效,authenticate()将返回一个User对象;若密码无效或用户不存在,则返回None。示例如下:
from django.contrib.auth import authenticate
user = authenticate(username='john', password='secret')
if user is not None:
# the password verified for the user
if user.is_active:
print()
else:
print()
else:
# the authentication system was unable to verify the username and password
print()
def auth(request):
user = authenticate(username='john', password='new password')#john
# user = authenticate(username='john', password='johnpassword')#None
print(user)
if user is not None:
# the password verified for the user
if user.is_active:
print("验证成功,已激活")
else:
print("验证成功,未激活")
else:
# the authentication system was unable to verify the username and password
print("没有此用户")
return HttpResponse(user)
john
验证成功,已激活

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













