auth模块的介绍
一、django中自带模块auth的使用
1、导包
from django.contrib import auth2、默认使用
auth_user表来存储用户数据# 默认用户表是位置 from django.contrib.auth.models import Usermysql> 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)用户用户登录,使用这个登录方式会生成相关的session3、
logout(request)退出操作,清除相关的session4、
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)设置密码(用于注册及修改密码)