当前位置 博文首页 > Django自带的用户验证系统实现

    Django自带的用户验证系统实现

    作者:ZPeng_Yan 时间:2021-08-08 18:07

    首先,我要说明一下,下面内容不是必须品,如果各位大神喜欢手写也是可以的,你也可以选择自带的功能来缩减你的代码量,提高效率!

    第一步 系统配置用户表

    首先,在models中创建用户表,导包

    from django.contrib.auth.models import AbstractUser
    
    #创建用户表
    class User(AbstractUser):
    	username = models.CharField(max_length=200,unique=True)
    	password = models.CharField(max_length=200)
    
    	class Meta:
    		db_table = 'user'

    在settings中指定系统验证使用的表(models)

    AUTH_USER_MODEL = "表所在的应用名.表名"
    如:        应用名 表名
    AUTH_USER_MODEL = "myapp.User"

    配置完成后,便可以迁移数据库了

    通过Django自带的AbstractUser,可以自动创建一些用户表所需的字段,如下图:

    在这里插入图片描述

    第二步 用户注册和登陆验证功能

    from django.contrib.auth import authenticate
    
    class UserView(APIView):
    
    	def post(self,request):
    		#创建新用户
    		User.objects.create_user(username='小明',password='123')
    		return Response({'code':200})
    
    	def get(self,request):
    		#验证用户信息
    		result = authenticate(username='小明',password='123')
    		return Response({'code':200})

    可以通过create_user给你的用户表添加新用户,通过authenticate验证用户是否存在,如果存在 result的值为username,否则为None

    上面的Demo仅仅做为演示,具体功能可以根据自己的需求添加

    jsjbwy
    下一篇:没有了