码迷,mamicode.com
首页 > 其他好文 > 详细

Django-auth模块

时间:2019-12-05 22:01:21      阅读:87      评论:0      收藏:0      [点我收藏+]

标签:推荐   abstract   creat   利用   文件   超级用户   login   自动   用户系统   

一、什么是auth模块:

auth模块是Django自带的用户认证模块,我们在开发网站的时候,无可避免的需要设计实现网站的用户系统,此时我们需要实现包括用户注册,用户登录,用户认证,注销,修改密码等功能,这还真是比较麻烦的事情呢!!!

同时,Django最为一个完美主义者的终极框架,当然也会想到用户的这些情况。由此用户认证系统auth就出现了!

二、auth模块的常用方法:

1.创建用户:

from django.contrib.auth.models import User
User.objects.create(username=username,password=password)  # 不可用  密码不是加密的
User.objects.create_user(username=username,password=password)  # 创建普通用户密码自动加密
User.objects.create_superuser(username=username,password=password,email=123@qq.com)  # 创建超级用户需要邮箱数据

 

2.校验用户名和密码是否正确:

from django.contrib import auth
user_obj = auth.authenticate(request,username=username,password=password)
# 必须传用户名和密码两个参数缺一不能

3.保存用户登录状态:

auth.login(request,user_obj)
# 只要这句话执行了 后面在任意位置 只要你能拿到request你就可以通过request.user获取到当前登录的用户对象

4.判断用户登录状态:

request.user.is_authenticated()

5.校验原密码是否正确

request.user.check_password(old_password)

6.修改密码:

request.user.set_password(new_password)
request.user.save()  # 千万不要忘了

7.注销:

auth.logout(request)

8.校验用户是否登录|装饰器

from django.contrib.auth.decorators import login_required
#局部配置(login_url=‘/login/‘)
    @login_required(login_url=/login/)
    def index(request):
        pass
#全局配置(login_url=‘/login/‘)
    settings配置文件中 直接配置
    LOGIN_URL = /login/
    @login_required
    def index(request):
        pass
# 如果全局配置了 局部也配置  以局部的为准

三、如何扩展auth_user字段表

方式一:利用一对一外键字段关系

from django.contrib.auth.models import User
class
UserDetail(models.Model): phone = models.BigIntegerField() user = models.OneToOneField(to=User)

方式二:利用继承关系(推荐使用)

from django.contrib.auth.models import AbstractUser
class Userinfo(AbstractUser):
  phone = models.BigIntegerField()
  register_time = models.DateField(auto_now_add=True)

# 一定要注意 还需要去配置文件中配置
AUTH_USER_MODEL = app01.Userinfo  # 应用名.表名
# 这么写完之后 之前所有的auth模块功能全都以你写的表为准 

 

Django-auth模块

标签:推荐   abstract   creat   利用   文件   超级用户   login   自动   用户系统   

原文地址:https://www.cnblogs.com/mqhpy/p/11991937.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!