auth 应用

auth

User 模型

from django.contrib.auth.models import User

1. 字段
  • username:位置参数。
  • password:位置参数,存储的是哈希值。
  • email:blank=True
  • is_active:建议用户删除账号时,设为 False,而不是真的删除账号,这样不会破坏外键。
  • last_login、date_joined
  • groups、user_permissions:Many-to-many relationship to Group、Permission。
  • is_staff、is_superuser:前者有权限访问后台,后者有所有权限。
  • 登录后台查看的用户信息与此完全一致。
2. 方法
# 新建用户,is_active 自动设为 True
user = User.objects.create_user(username, email=None, password=None, **extra_fields)
user.save()

# 认证用户,不检查 is_active,验证失败则返回 None
from django.contrib.auth import authenticate
user = authenticate(username=username, password=password)

# 修改密码,前提已通过认证
user.set_password(new_password)
user.save()

# 用户登录,向 session 中添加 SESSION_KEY,跟踪用户
from django.contrib.auth import login
def login_view(request):
    login(request, user)

# 用户注销
from django.contrib.auth import logout
def logout_view(request):
    logout(request)

# 仅限登录用户访问,通过检查 session key 判断是否登录
# 未登录用户将被重定向到 login_url
from django.contrib.auth.decorators import login_required
@login_required(login_url='/accounts/login/')
def userinfo(request):
    pass

参考文档:
https://docs.djangoproject.com/en/2.0/ref/contrib/auth/#django-contrib-auth
https://www.cnblogs.com/LiCheng-/p/6920900.html

你可能感兴趣的:(auth 应用)