auth模块的介绍
一、django
中自带模块auth
的使用
1、导包
from django.contrib import auth
2、默认使用
auth_user
表来存储用户数据# 默认用户表是位置 from django.contrib.auth.models import User
mysql> show tables; +----------------------------+ | Tables_in_django_rest01 | +----------------------------+ | auth_group | | auth_group_permissions | | auth_permission | | auth_user | | auth_user_groups | | auth_user_user_permissions | | django_admin_log | | django_content_type | | django_migrations | | django_session | +----------------------------+ 10 rows in set (0.00 sec)
二、常用的方法
1、
authenticate()
用来校验用户名及密码from django.contrib.auth import authenticate, login, logout # 如果校验成功就返回当前用户,否则就返回None user = authenticate(username='username', password='password')
2、
login(HttpRequest, user)
用户用户登录,使用这个登录方式会生成相关的session
3、
logout(request)
退出操作,清除相关的session
4、
is_authenticated()
用来判断当前请求是否通过认证def my_view(request): if not request.user.is_authenticated(): return redirect('%s?next=%s' % (settings.LOGIN_URL, request.path))
5、
login_requierd()
必须登录的装饰器from django.contrib.auth.decorators import login_required @login_required def my_view(request): pass
若用户没有登录,则会跳转到
django
默认的 登录URL '/accounts/login/ '
并传递当前访问url
的绝对路径 (登陆成功后,会重定向到该路径)。如果需要自定义登录的URL,则需要在settings.py
文件中通过LOGIN_URL
进行修改。LOGIN_URL = '/login/' # 这里配置成你项目登录页面的路由
6、
create_user()
创建普通用户的from django.contrib.auth.models import User user = User.objects.create_user(username='用户名',password='密码',email='邮箱',...)
7、
create_superuser()
创建超级用户8、
check_password(password)
检查密码是否正确(用户登录)user.check_password('密码')
9、
set_password(password)
设置密码(用于注册及修改密码)