Django中建立用户并与数据库中验证是否存在此用户

首先创建一个注册用户的程序:

  def register(request):
  #校验请求方式,进入不同的处理函数
    if request.method == 'GET':
   		return render(request,'index.html',)
	elif request.method == 'POST':
    '''获取前端页面的数据'''
        print('进入')
        user_name = request.POST.get('username')
        password = request.POST.get('password')
        cpassword = request.POST.get('cpassword')
        emai = request.POST.get('email')
        #判断数据是否为空
        if not all([user_name, password, cpassword, emai]):
            return render(request, 'index.html')
        #判断邮箱是否规范
        if not re.match(r'^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$', emai):
            return render(request, 'index.html',{'errmsg':'邮箱不符合规范'})


        #判断是否重复操作
        #判断邮箱:
        try:
            user_email = UserInfo.objects.filter(email__exact = emai )
            print(user_email)


        except Exception as e:
            user_email = None
        if user_email:
            return render(request, 'index.html', {'errmsg': '邮箱已经被使用'})


        #判断用户名
        try:
            user = UserInfo.objects.get(username = user_name)

        except Exception as e:
            user = None
        if user:
            return render(request, 'index.html', {'errmsg': '用户名已经被使用'})

        #创建一个用户对象
        user = UserInfo.objects.create_user(username=user_name, email=emai, password=password)
        #create_user 自带检查是否重复
        # create_user(self, username, email=None, password=None,

        #讲激活标志设置为0
        user.is_active = 0
        user.save()
        print('提交成功')

        return render(request, 'index.html')

第二步,进行数据库的校验:

class RegisterView(View):
	def get(self,request):
    	return render(request, 'index.html')

	def post(self,request):
	#获取用户输入的信息
        user_name = request.POST.get('username')
        password = request.POST.get('password')
        cpassword = request.POST.get('cpassword')
        email = request.POST.get('email')
        '''判断数据是否为空'''
        if not all([user_name, password, cpassword, email]):
            return render(request, 'index.html')

        if not re.match(r'^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$', email):
            return render(request, 'index.html', {'errmsg': '邮箱不符合规范'})
		try:
        user = UserInfo.objects.filter(email__exact=email)
        (UserInfo是数据库里面存放用户信息的一张表,filter是模糊查询,去匹配数据库里面的信息)

  		 except Exception as e:
   	    	 user = None

        if user:
            return render(request, 'index.html', {'errmsg': '邮箱已经被使用'})

        '''判断用户名'''
        try:
            usern = UserInfo.objects.get(username=user_name)

        except Exception as e:
            usern = None

        if usern:
            return render(request, 'index.html', {'errmsg': '用户名已经被使用'})

        '''创建一个用户对象'''
        user = UserInfo.objects.create_user(username=user_name, password=password, email=email)
        # create_user(self, username, email=None, password=None,
        '''将激活标志设置为0'''
        user.is_active = 0
        user.save()
        print('提交成功')
  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值