Django,django.po
学习笔记,仅供参考。
文章目录用户认证系统用户模型类认证基本模型操作创建用户删除用户修改密码检查密码是否正确
用户认证系统
Django附带了一个用户认证系统,它处理用户帐户、组、权限和基于cookie的用户会话。
添加普通用户和超级用户,修改密码,登录和注销管理,查看登录用户。
用户模型类
Auth Application现在,我们来看看mybookstore数据库下的数据表:
mysql显示表格;
-
我的书店中的表格
-
授权组
授权组权限
授权许可
授权用户
授权用户组
授权用户用户权限
书店_书
django_admin_log
django_content_type
django _迁移
django_session
userinfo_user
-
1Rows in set (0.00 sec)我们知道Django对这些数据表的命名规则是APPlication name _ class name。从上面的输出结果中,我们发现前六个数据表都是以auth开头的。这是因为Django自动为我们创建了一个应用auth,这是一个用户认证app。它的models.py模块中有一个用户模型类,我们可以导入它来帮助我们完成用户认证。
从django.contrib.auth.models导入用户模型类导入用户
用户基本属性的属性名称。
类型
必须存在吗?
用户名
用户名
是
密码
密码
是
电子邮件
邮筒
可选择的
名字
名字
可选择的
姓氏
姓
可选择的
is _超级用户
是管理员(超级用户)帐户(/admin)吗
可选择的
is_staff
可以进入管理员管理界面吗?
可选择的
是活动的
无论是活动用户,默认为真。
一般服务器不会轻易删除用户,而是会将用户的is_active设置为False,这样用户就不可用了。
可选择的
最后一次登录
上次登录时间
可选择的
日期_加入
用户创建的时间
可选择的
还记得我们在学习admin后台数据库管理的时候,一个创建管理员帐号的命令:
python manage.py createsuperUser命令实际上相当于创建一个用户对象,也就是在mysql的auth_user数据表中添加一条用户记录。
数据库的表示现在,我们来看看mysql中的auth_user数据表:
MySQL desc auth _ user;
- - - - - -
Field Type Null Key Default Extra
- - - - - -
id int(11) NO PRI NULL auto _ increment
password varchar(128) NO NULL
last _ log in datetime(6) YES NULL
is _ super user tinyint(1) NO NULL
username varchar(150) NO UNI NULL
名字 varchar(30) 否 NULL
姓氏 varchar(150) 否 NULL
email varchar(254) NO NULL
is _ staff tinyint(1) NO NULL
is _ active tinyint(1) NO NULL
date _ joined datetime(6) NO NULL
- - - - - -
1集合中的行(0.02秒)可以看到id为11位的整数,密码最多可以存储128个字符,用户名最多可以存储150个字符,以此类推…
授权基本模型操作
创造用户
从django.contrib.authimport模型创建普通用户create _ user
user=models . user . objects . create _ user(用户名=用户名,密码=密码,电子邮件=邮箱,)
.
User.save()从django.contrib.authimport模型创建超级用户create _ superuser
user=models . user . objects . create _ super user(用户名=用户名,密码=密码,电子邮件=邮箱,)
.
user.save()
删除用户
从django.contrib.auth导入模型
尝试:
User=models.user.objects.get(用户名=用户名)
user.is_active=False
#使当前用户无效
user.save()
打印(删除普通用户成功!)
除了:
打印(“普通用户删除失败”)
修改密码
从django.contrib.auth导入模型
尝试:
User=models.user.objects.get(用户名=用户名)
User.set_password(“新密码”)
#Django将使用set_password方法加密新密码。
#所以,我们不能用user.password的方法更改密码
user.save()
返回HttpResponse(密码修改成功!)
除了:
返回HttpResponse(密码修改失败!)
检查密码是否正确。
从django.contrib.auth导入模型
尝试:
User=models.user.objects.get(用户名=用户名)
If.check _ password(输入密码):
#成功返回真,失败返回假
#Django会先加密输入的密码。
#然后比较数据库中存储的加密密码。
返回HttpResponse(“密码正确”)
否则:
返回HttpResponse(“错误的密码”)
除了:
返回HttpResponse(没有这样的用户!)
转载请联系作者获得转载授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。