django 使用form验证用户名和密码

form验证可以减少查询数据库,所以代码先预先验证,有问题可以返回给前端显示

1.在users文件夹下新建forms.py文件,用来验证用户名和密码是否为空,密码长度是否大于6

# -*- coding: utf-8 -*-
# 作者:神秘藏宝室
# 日期:2018/12/30 21:56
from django import forms

class LoginForm(forms.Form):
    username = forms.CharField(required=True)
    password = forms.CharField(required=True, min_length=6)

2.修改views.py下的LoginView的逻辑,当form出问题返回给前端login_form内容

class LoginView(View):
    def get(self, request):
        return render(request, 'login.html', {})

    def post(self, request):
        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")
            else:
                return render(request, "login.html", {"msg": u"用户名或者密码错误!"})
        else:
            return render(request, "login.html", {"login_form": login_form})

3.前端显示错误,显示出错误内容

<div class="form-group marb20 {% if login_form.errors.username %}errorput{% endif %}">
                        <label>用&nbsp;户&nbsp;名</label>
                        <input name="username" id="account_l" type="text" placeholder="手机号/邮箱" />
                    </div>
                    <div class="form-group marb8 {% if login_form.errors.password %}errorput{% endif %}">
                        <label>密&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;码</label>
                        <input name="password" id="password_l" type="password" placeholder="请输入您的密码" />
                    </div>
                    <div class="error btns login-form-tips" id="jsLoginTips">{% for key,error in login_form.errors.items %} {{ error }} {% endfor %}{{ msg }}</div>

以上代码可以实现,错误选项的红框标记,错误问题显示

输入为空

密码长度小于6

正常的用户名密码错误,查询数据库后错误显示

原文地址:https://www.cnblogs.com/Mysterious/p/10200994.html

时间: 2024-11-10 07:51:47

django 使用form验证用户名和密码的相关文章

ajax验证用户名和密码

1 var user = form.name.value; 2 var password = form.password.value; 3 var url = "chkname.php?user="+user+"&password="+password;//以前只知道ajax用于对用户名的检测,原来还可以对密码进行检测. 4 xmlhttp.open("GET",url,true); 5 xmlhttp.onreadystatechang

用SQL Server验证用户名和密码

用SQL Server验证用户名和密码,从页面输入的用户名和密码与数据库的用户名和密码进行匹配,正确则登入,错误则提醒. <form action="index.jsp" method="post" > <!--大的div框架开始--> <div id="div"> <!--左边div框架开始--> <div id="div1"> <p style="

Android 设置代理(验证用户名和密码)

这几天在研究在Android中,解析网页,但是公司内容,链接外网需要代理,并需要验证用户名和密码,十分头疼,网上查了下,没有头绪,最后总算在一个外国博客中看到类似的,记录下 URL url = new URL(urlString);    String host=android.net.Proxy.getDefaultHost();    int port=android.net.Proxy.getDefaultPort();        SocketAddress address=null;

PowerShell验证用户名和密码

验证用户名和密码通常会在内部进行定期扫描,以防止弱密码的使用.当然,扫描时大家要注意不要超过最大错误次数,以免造成锁定 密码验证的方法这里涵盖了两种,一种是域用户,一种是本地用户 域用户的验证方法: $Try = New-Object System.DirectoryServices.DirectoryEntry("LDAP://DC=Contoso,DC=Com", "$UserName", "$Password") 当$Try.Name 为空

c# 调用mysql数据库验证用户名和密码

使用mysql数据库验证用户名和密码时,如果用户名是中文,一直查不到数据 需要把app.config 中修改为 数据库统一设置utf8编码格式,连接数据库的时候设置编码Charset=utf8可以避免,例如:string connectiontext = "Server=139.222.313.153;Database=testsys;User=root;Password=1123456;Charset=utf8;"; 这样就调试OK 原文地址:https://www.cnblogs.

Django之Form验证(***)

Django之Form验证 ------- END ------- 原文地址:https://www.cnblogs.com/george92/p/11441796.html

Django中Form验证

Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 一,Form验证 第一种操作:主要是这三个函数 is_valid() cleaned_data errors from xiaoqing import models def form(request): if request.method == "GET": return render(request,'form.html') eli

客户端验证用户名和密码

1.概述 在动态网站的用户注册页面中,经常需要对用户输入的用户名和密码的位数及成员组成进行判断,这样可以规范用户的注册信息.例如本实例,要求用户名由3-10位的字母.数字和下划线组成,密码由6-20位的字母.数字.下划线和点“.”组成并且首字符为字母,这时就需要对用户的输入进行判断,因此笔者编写了两个函数,分别用于验证用户输入的用户名和密码是否合法. 2.技术要点 验证用户名是否由3-10位的字母.数字和下划线组成的正则表达式如下: /^(\w){3,10}$/ 验证密码是否由6-20位的字母.

django 基于 form 验证 确认密码的注册

class RegisterForm(Form): # user_id=fields.IntegerField() username=fields.CharField( max_length=12, min_length=4, required=True, error_messages={'required':'用户名不能为空','invalid':'输入不合规'}, # widget = widgets.TextInput(attrs={'class': 'form-control loon