超级用户的创建
在命令行输入:
python manage.py createsuperuser
后台注册管理
在admin.py文件中设置:
admin.size.register(["模块名称",]) # register后面跟的是一个可迭代对象,列表元祖都可以
中文显示格式
在 settings.py 文件中设置:LANGUAGE_CODE设置为 zh_Hans
models文件
from django.db import models
class Book(models.Model):
name = models.charFiled(max_length=20,verbose_name="书名")
# 设置verbose_name可以在admin后台管理系统中显示的字段名显示为设置的名称
class Meta: # 元类
db_table = "books" # 在数据库中显示的表名
verbose_name = "书模型"
verbose_name_plural = verbose_name
认证管理
创建用户:
其实就是操作auth_user表 ,在里面创建一个用户,可以导入User模块,通过User模块创建用户
user = User.objects.create_user(name=,email=,password=)
认证用户:(authenticate)
user = authenticate(username=,password=) 此方法不验证 is_active 标志位
判断登录
方式一:
user = authenticate(username=,password=)
if user is not None:
if is_active:
login(request,user)
# login 向session中添加SESSION_KEY,SESSION数据中保存了用户ID,便于对用户进行跟踪
方式二:装饰器
@login_required(login_url:) 设置若没登录将进行重定向到login_url指定的位置
登出
logout(request)
权限管理
Django的权限系统是由用户User(),组Group(),权限Permission()完成的。 每个模型默认由四个权限(增删改查)
创建用户: 见认证管理
创建组: 映射的是 auth_group()表
group1 = Group.objects.create(name=)
组与用户的关系:
user对象.groups.add(组对象) 用户加入组
group对象.user_set.add(用户对象) 组加入用户
user对象.groups.remove(组对象) 用户退出组
group对象.user_set.remove(用户) 组踢出用户
user对象.groups.clear() 用户退出所有组
group对象.user_set.remove() 组踢出所有的用户
权限对象:
per = Permission.objects.get(codename=)
per = Permission.objects.filter(codename=)[0]
检查用户权限:has_perm(appname.codename)
方式一:
先获取用户为tom的用户:
user1 = User.objects.get(username="tom")
检查tom有myapp中add_student权限:
user1.has_perm(myapp.add_student)
方式二:
@permission_required(appname.codename,login_url:) 装饰器可以代替has_perm
权限与用户的关系:
添加权限:user对象.user_permissions.add(permission对象)
删除权限:user对象.user_permission.remove(permission对象)
清空权限:user对象.user_permission.clear()
权限与组的关系:
添加权限:group对象.permissions.add(permission对象)
删除权限:group对象.permissions.remove(permission对象)
清空权限:group对象.permissions.clear()
自定义权限:
在模型的Meta中设置自定义权限
模型对象:
class Meta:
permission("codename","说明")
在模板中检查登录以及验证权限:
在模板中可以直接调用 user perms 对象 分别对应当前的用户和当前用户的权限
{% if user.is_authenticated %} # 判断用户是否登录
{% if perms.myapp.add_student %} # 判断当前用户是否有添加学生的权限