01-手写用户验证
02-auth系统与类视图
03- 使用内置auth应用的认证系统
04-权限系统原理介绍,auth应用表结构
05-使用auth应用的权限系统
01-手写用户验证
02-auth系统与类视图
从表的名称我们就能看出, auth_user, auth_group, auth_permission分别 存放了用户,用户组,权限的信息表. 另外三张表就是多对多的关系表
User:User是auth模块中维护用户信息的关系模式(继承了models.Model), 数据库中该表被命名为auth_user.
Group:User对象中有一个名为groups的多对多字段, 多对多关系由auth_user_groups数据表维护。
Group对象可以通过user_set反向查询用户组中的用户。
Permission:Django的auth系统提供了模型级的权限控制, 即可以检查用户是否对某个数据表拥有增(add), 改(change), 删(delete)权限。
02-1:auth系统中User模型常用属性和方法:
03-1:auth认证系统功能:
create_user 创建用户
authenticate 验证登录
login 记住用户的登录状态
logout 退出登录
is_authenticated 判断用户是否登录
login_required 判断用户是否登录的装饰器
03-2:使用auth系统添加用户:
from django.contrib.auth.models import User user = User.objects.create_user(username='guang',password='qwe123456') user.save()
03-3:使用auth系统:
03-4:ogin_required 判断用户是否登录的装饰器的使用
第二种方法:setting.py设置:
LOGIN_URL = '/accounts/login/' #这个路径需要根据你网站的实际登陆地址来设置
另一种方法:
@login_required(login_url='/teacher/now/login/') # 在装饰器中添加路径
03-5:logout 退出登录
04-权限系统原理介绍,auth应用表结构
01-创建admin管理用户:
python manage.py createsuperuser
02-在admin.py中注册表
# 在项目目录的amin.py中注册模型 from django.contrib import admin from .models import Student admin.site.register(Student)
03-模型管理器
# 模型管理器 class StudentAdmin(admin.ModelAdmin): # listdisplay设置要显示在列表中的字段(id字段是Django模型的默认主键) list_display = ['name','age','sex','qq','phone'] # list_per_page设置每页显示多少条记录,默认是100条 list_per_page = 20 # ordering设置默认排序字段,负号表示降序排序 ordering = ('-age',) # list_editable 设置默认可编辑字段 list_editable = ['qq', 'age'] # search_fields设置搜索 search_fields = ['name','age','qq'] # list_filter过滤 list_filter = ['sex','age'] admin.site.register(Student,StudentAdmin) # 注册模型
05-使用auth应用的权限系统( @permission_required)