python-42-Form验证

1.views.py

from django.shortcuts import render,HttpResponse,redirect
from django import  forms
from django.forms import fields
class F1Form(forms.Form):

    #应该和form表单中的name对应

    user = fields.CharField(
        max_length=18,
        min_length=6,
        required=True,
        error_messages={
            'required':'用户名不能为空',
            'max_length':'太长了',
            'min_length':'太短了',
        }
    )
    pwd = fields.CharField(
        min_length=32,
        required=True,
        error_messages={
            'required':'密码不能为空',
            'min_length': '太短了',
        }
    )
    age = fields.IntegerField(
        required=True,
        error_messages={
            'required': '年龄不能为空',
            'invalid': '必须为数字',
        }
    )
    email = fields.EmailField(
        required=True,
        error_messages = {
            'required': '邮箱不能为空',
            'invalid': '邮箱格式错误',
        }
    )


# Create your views here.
def f1(req):
    if req.method=="GET":
        obj=F1Form()
        return render(req,'f1.html',{'obj':obj})
    else:
        # u=req.POST.get('user')
        # p=req.POST.get('pwd')
        # a=req.POST.get('age')
        # e=req.POST.get('email')
        # print(u,p,a,e)
        #return render(req, 'f1.html')

        obj = F1Form(req.POST)
        #判断是否验证成功
        if obj.is_valid():
            #用户提交的数据
            print('验证成功',obj.cleaned_data)
            return redirect('http://www.baidu.com')
        else:
            print('验证失败',obj.errors)
            return render(req, 'f1.html',{'obj':obj})
复制代码

2.f1.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>f1</title>
</head>
<body>
<div>

</div>
<form id="fm" action="/f1/" method="post">

    <p>{{ obj.user }}{{ obj.errors.user.0 }}</p>
    <p>{{ obj.pwd }}{{ obj.errors.pwd.0 }}</p>
    <p>{{ obj.age }}{{ obj.errors.age.0 }}</p>
    <p>{{ obj.email }}{{ obj.errors.email.0 }}</p>
    <p><input type="submit" value="提交"></p>
{#    <input type="button" value="ajax提交" onclick="submitAjaxForm()">#}
</form>

<script src="/static/jquery-3.1.1.js"></script>
{#<script>#}
{#    function submitAjaxForm() {#}
{#        $.ajax({#}
{#            url:'/f1/',#}
{#            type:'POST',#}
{#            data:$('#fm').serialize(),#}
{#            success:function (arg) {#}
{#                console.log(arg)#}
{#            }#}
{#        })#}
{#    }#}
{#</script>#}


</body>
</html>
复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值