Django-Auth模块

(1)model.py:    from django.db import models    from django.contrib.auth.models import AbstractUser        class MyUserInfo(AbstractUser):        phone = models.CharField(max_length=11,blank=
摘要由CSDN通过智能技术生成

目录

给auth_user表添加自定义的字段:

创建用户

密码相关API

auth模块的方法

User对象具有的字段

User对象具有的属性

models.user的方法

AnonymousUser匿名用户的方法

Auth权限管理


给auth_user表添加自定义的字段:

(1)model.py:

    from django.db import models
    from django.contrib.auth.models import AbstractUser
    
    class MyUserInfo(AbstractUser):
        phone = models.CharField(max_length=11,blank=True,help_text='请输入手机号')
        adddr = models.CharField(max_length=11,blank=True,help_text='请输入地址')
        
        class Meta(AbstractUser.Meta):
            db_table = 'user_login_info_tables'
            
​
(2)settings.py:
    
    AUTH_USER_MODEL = 'app01.MyUserInfo'
    
    
(3)admin字段
# 在django.contrib.auth.admin中设置 #
将第9行:from ... import Group,User     改为——》    from ... import Group
添加1行:from app01.models import UserInfoTable as User
​
# 找到django.contrib.auth.admin.userAdmin类 #
在fieldsets元组中添加:
('标题名',{'fields':('字段1','字段2')})

创建用户

from django.contrib.auth import User
​
(1)创建超级用户:
User.object.createsuperuser(username='',password='',email='')
​
(2)创建普通用户,密码明文:
User.object.create(username='',password='')
​
(3)创建普通用户,密码加密:
User.object,create_user(username='',password='')
​

密码相关API

from django.contrib.auth.hashers import make_password,check_password
​
加密:make_password('密码明文') 会返回一个加密后的字符串
校验:check_password('密码明文',make_password加密的字符串)
​
​
修改密码:set_password()
      ->save()  # 保存 #
    
auth的默认库: Models.User.set_password()
​
​
make_password/check_password是模块,set_password是方法

auth模块的方法

1.authenticate   验证用户与密码
​
    from django.contrib import auth
    auth.authenticate(usernmae=username,password=password)
    # 如果验证成功,则返回一个用户User表的对象,如果验证失败,则返回None #
    
    
2.login    登录
​
    .....
    user_obj = auth.authenticate(username=username,password=pwd)
    if user_obj:
        auth.login(request,user_obj)
        return redirect('index')
    
    
3.logout    推出登录
​
    auth.logout(request)
    return redirect('login')
​
​
4.login_required     装饰器
​
    from django.contrib.auth.decorators import login_required
    
   # 直接在要判断是否登陆的地方前加@login_required #
​
    配置setting.py:
        LOGIN_URL = '/login/'
        
   @login_required参数:
        (1)@login_required(redirect_field_name='')    # url里get请求方法参数的名称 #
        (2)@login_required(login_url '')              #  请求的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值