码迷,mamicode.com
首页 > Web开发 > 详细

Django-website 程序案例系列-16 modle.form(表单验证)

时间:2017-12-26 19:07:26      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:用户名   生成   nbsp   token   redirect   用户   field   建立   最小   

案例程序:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="/fm/" method="POST">  #3个输入框分别是user/pwd/email
    {% csrf_token %}
    <input type="text" name="user" />
    <input type="text" name="pwd" />
    <input type="text" name="email" />
    <input type="submit" value="提交" />
</form>
</body>
</html>

views函数:

from django import forms   # 首先需导入forms包

class FM(forms.Form):     #建立一个验证类
    user = forms.CharField(error_messages={‘required‘: ‘用户名不能为空‘})     #自定制的中文错误返回
    pwd = forms.CharField(
        max_length=‘12‘,
        min_length=‘8‘,
        error_messages={‘required‘: ‘密码不能为空‘, ‘max_length‘: ‘密码最大长度不能大于12‘, ‘min_length‘: ‘密码最小长度不能小于8‘}
    )
    email = forms.EmailField(error_messages={‘required‘: ‘邮箱不能为空‘, ‘invalid‘: ‘邮箱格式错误‘})

def fm(request):
    if request.method == "GET":
        return render(request, ‘fm.html‘)
    elif request.method == "POST":
        # 获取用户的所有数据
        # 每条数据请求的验证
        # 成功:获取所有的正确信息
        # 失败:显示错误信息
        obj = FM(request.POST) #生成一个表单验证类
        r1 = obj.is_valid()    #验证输出的结果 成功为true  错误为false
        print(r1)
        if r1:
            print(obj.cleaned_data)  #如果成功返回验证好的数据并打印
        else:
            print(obj.errors.as_json)  #如果失败返回错误信息打印
        return redirect(‘/fm/‘)

 

显示的信息:

技术分享图片

达到了自定制返回的错误信息为中文的目的

 

 向前端送出验证错误信息:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="/fm/" method="POST">
    <p><input type="text" name="user" />  {{ obj.errors.user.0 }} </p>  #前端显示验证错误信息
    <p><input type="text" name="pwd" /> {{ obj.errors.pwd.0 }} </p>
    <p><input type="text" name="email" /> {{ obj.errors.email.0 }} </p>
    <input type="submit" value="提交" />

</form>
</body>
</html>
def fm(request):
    if request.method == "GET":
        obj = FM()
        return render(request, ‘fm.html‘, {‘obj‘: obj}) # 传送一个验证数据对象obj
    elif request.method == "POST":
        # 获取用户的所有数据
        # 每条数据请求的验证
        # 成功:获取所有的正确信息
        # 失败:显示错误信息
        obj = FM(request.POST)
        r1 = obj.is_valid()
        print(r1)
        if r1:
            print(obj.cleaned_data)
        else:
            print(obj.errors)
            return render(request, ‘fm.html‘, {‘obj‘: obj})
    return render(request, ‘fm.html‘)

 

Django-website 程序案例系列-16 modle.form(表单验证)

标签:用户名   生成   nbsp   token   redirect   用户   field   建立   最小   

原文地址:https://www.cnblogs.com/kuku0223/p/8119362.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!