关于登录的问题

来源:6-5 登录表单

宿命让我遇见你

2020-08-09 10:32:03

http://img.mukewang.com/climg/5f2f5e720989c0e614140451.jpghttp://img.mukewang.com/climg/5f2f5eb609f3824d02210165.jpg

def user_login(request):
   if request.method == 'POST':
       form=UserLogin(request.POST)
       if form.is_valid():
           data=form.cleaned_data
           user=authenticate(request,username=data['username'],password=data['password'])
           if user is not None:
               login(request,user)
               return redirect('student')
       else:
           print(form.errors)
   else:
       form=UserLogin()
   return render(request,'user_login.html',{
        'form':form
   })

class UserLogin(forms.Form):
   username=forms.CharField(label='用户名',max_length=32,error_messages={
      'required':'请输入用户名'
  })

   password=forms.CharField(label='密码',max_length=64,widget=forms.PasswordInput,error_messages={
       'required':'请输入密码'
   })
   #verify_code=forms.CharField(label='验证码',max_length=4)

   def clean_username(self):
       username=self.cleaned_data['username']
       if len(username)>=10:
           raise forms.ValidationError('用户名太长请重新输入')
       return username

   def clean(self):
       cleaned_data=super().clean()
       username=cleaned_data.get('username',None)
       password=cleaned_data.get('password',None)
       if username and password:
           user_list=User.objects.filter(username=username)
           if user_list.count()==0:
               raise forms.ValidationError('用户名不存在!')
           if not authenticate(username=username,password=password):
               raise forms.ValidationError('密码错误!')
       return cleaned_data

老师,你好,为什么表单里没输入什么内容,也没有错误提醒,但是点击登录就可以跳转到student页面?

写回答

1回答

时间,

2020-08-09

同学,你好。登录按钮应该使用button按钮实现,a标签是超链接,因此是可以跳转到对应的页面中的

http://img.mukewang.com/climg/5f2f8e28098737a009080104.jpg

http://img.mukewang.com/climg/5f2f8e5d0987ddb709250371.jpg

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~

0

0 学习 · 3562 问题

查看课程