强力Django第六章5-完善用户登录定义form报错的前端展现

1.更新配置views.py

# _*_ encoding:utf-8 _*_
__author__ = 'luky'
__date__ = '2018/4/12 15:46'

from django.shortcuts import render
from django.contrib.auth import authenticate, login

#1自定义登陆的字段,用户名或者email都行
from django.contrib.auth.backends import ModelBackend
from django.db.models import Q

from django.views.generic.base import View

# Create your views here.
from .models import UserProfile
from.forms import LoginForm


class CustomBackend(ModelBackend):
    def authenticate(self, username=None, password=None, **kwargs):
        try:
            user = UserProfile.objects.get(Q(username=username)|Q(email=username))
            if user.check_password(password):
                return user
        except Exception as e:
            return None


class LoginView(View):
    def get(self, request):
        return render(request, "login.html", {})
    def post(self, request):
        # 增加form组件对用户提交的表单进行预处理,验证参数是否正确
        login_form = LoginForm(request.POST)
        if login_form.is_valid():
            user_name = request.POST.get("username", "")
            pass_word = request.POST.get("password", "")
            user = authenticate(username=user_name, password=pass_word)
            if user is not None:
                login(request, user)
                return render(request, "index.html")
            #更新部分1
            else:
                # 2{"msg":"用户名密码输入错误!"}定义数据库查询后验证的报错输。在login.html代码中加入
                return render(request, "login.html", {"msg": "用户名密码输入错误!"})
            #更新部分1
        else:
            #更新部分2
            #3{"login_form":login_form}定义form验证报错输。在login.html代码中加入
            return render(request, "login.html", {"login_form":login_form})
            #更新部分2

2.更新login.html





    
    
    
    慕学在线网登录
    
    


成功提交

您的需求提交成功!

邮件验证提示

我们已经向您的邮箱[email protected]发送了邮件,
为保证您的账号安全,请及时验证邮箱

去邮箱验证

没收到,您可以查看您的垃圾邮件和被过滤邮件,
也可以再次发送验证邮件

慕学在线网,在线学习平台!

3.验证
用户名密码为空


强力Django第六章5-完善用户登录定义form报错的前端展现_第1张图片
image.png

密码输入小于5个字符


强力Django第六章5-完善用户登录定义form报错的前端展现_第2张图片
image.png

你可能感兴趣的:(强力Django第六章5-完善用户登录定义form报错的前端展现)