Django之Form表单验证及Ajax验证方式汇总

一、Form表单验证:

原理:在Form表单提交到Views后台时,利用Django特有的验证模版技术(实质上实现验证功能的类)对表单数据进行验证,然后将结果返回到页面上。

html页面代码如下:

<form method="post" action="/login.html">
    <p>
        <input type="text" name="user" placeholder="用户名">
        <!与后台绑定的用户名错误信息>
        <span>{
  { obj_login_form.errors.user.0 }}</span>
    </p>
    <p>
        <input type="text" name="email" placeholder="邮箱">
        <!与后台绑定的邮箱错误信息>
        <span>{
  { obj_login_form.errors.email.0 }}</span>
    </p>
    <input type="submit" value="提交">
</form>

后台views代码:

from django import forms
class Login_Form(forms.Form):
    # 与前台名称一致的用户名字段,Django内置的普通str验证方法,增加验证最小长度为3
    user=forms.CharField(min_length=3)
    # django内置的Email验证方法
    email=forms.EmailField()


def login(req):
    if req.method=='GET':
        return render(req,'login.html')
    elif req.method=='POST':
        # 将表单数据放入Login_Form中
        obj_login_form=Login_Form(req.POST)
        # 通过is_valid()方法验证,返回是否有错误信息
        if obj_login_form.is_valid():
            # 当验证通过后打印通过的数据
            print(obj_login_form.clean())
        else:
            # 打印验证失败的错误信息
            print(obj_login_form.errors)
        return render(req,'login.html',{'obj_login_form':obj_login_form})

注意:

定义的验证类中验证的字段名与前台页面需要验证的字段名必须一致。Django实现了前台模版调用后台内容为空时自动忽略,因此在get请求时即使没有将{'obj_login_form':obj_login_form}传给前台页面,也不会报错。

当前验证效果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值