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

案例程序:

<!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‘)

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

时间: 2024-11-10 10:09:02

Django-website 程序案例系列-16 modle.form(表单验证)的相关文章

Python自动化运维系列之Django Form表单验证

Form表单验证 Django核心功能组件之一,虽然也可以在前端使用JS对表单验证, 但是Django中已经为我们准备好的Form功能还算是很强大的,有时候比较适合运维,为我们简化了很多前端开发工作. Django最主要的几个功能有4个     ·  生成HTML标签     ·  验证数据(表单错误信息提示)     ·  HTML 表单保留上次提交数据     ·  初始化页面表单内容 Django的Form内容还是挺多的,我们可以从一个简单的登陆验证例子来看看Form的基本功能使用 1)新

Django基础之Form表单验证

Form表单验证 1.创建Form类(本质就是正则表达式的集合) from django.forms import Form from django.forms import fields from django.forms import widgets from Mybbs.models import * import re class UserForm(Form): username = fields.CharField( required=True, error_messages={'re

django之form表单验证

django中的Form一般有两种功能: 输入html 验证用户输入 #!/usr/bin/env python # -*- coding:utf-8 -*- import re from django import forms from django.core.exceptions import ValidationError def mobile_validate(value): mobile_re = re.compile(r'^(13[0-9]|15[012356789]|17[678]

Django中的Form表单验证

回忆一下Form表单验证的逻辑: 前端有若干个input输入框,将用户输入内容,以字典传递给后端. 后端预先存在一个Form表单验证的基类,封装了一个检测用户输入是否全部通过的方法.该方法会先定义好错误信息的字典,并会遍历类的所有属性(对应前端待验证的输入域),调用各自的验证方法,将错误信息(两类,必要与否以及格式正确与否)存入字典,并得出最终的验证结果.在使用时,需要定义继承自Form基类不同的Form类,以对应有着不同输入域的Form表单.在拿到前端给的字典前,要先初始化自定义From类,直

python_way day14 HTML-day5 (form表单验证,)

python-way day19 1. dJango的form表单验证 一,django表单验证功能 1.django验证基础: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>django form</title> </head> <body> <div> <i

用jquery写自己的form表单验证

这几天看了锋利的jquery,感觉很不错.特别是jquery强大的选择器.今天就利用jquery写了一个自己的form表单验证的小案例.当巩固下jquery.首先贴下代码,当然只是一个小案例. 思路:   1.<input type="text" Validate="Date" id="date"/>这里的 Validate:是我们需要验证的类型(属于日期类型),这里你也可以自己定义.id属性就不用说了.<input type=

element-ui Form表单验证

element-ui Form表单验证规则全解 element的form表单非常好用,自带了验证规则,用起来很方便,官网给的案例对于一些普通场景完全没问题,不过一些复杂场景的验证还得自己多看文档摸索,自己经过数次爬坑 之后,总结了几种form表单的验证规则,为了便于阅读,验证规则是拆分的,完整的代码放在文末 1. 普通输入验证 <el-form-item label="活动名称" prop="name"> <!-- validate-event属性

抽屉之Tornado实战(7)--form表单验证

在这里,我们把form表单验证的代码进行工具化了,以后稍微修改一下参数就可以拿来用了 先贴上代码 forms.py from backend.form import fields class BaseForm: def __init__(self): self._value_dict = {} self._error_dict = {} self._valid_status = True def valid(self, handler): for field_name, field_obj in

ant-pro使用Form表单验证上传图片出现的问题

1.复现:用antd的Form表单验证上传图片必填项时出现问题:复现过程,先提交,提示图片需要上传,上传成功后,依旧提示:图片未上传 2.表单验证原理:先理解一下antd的Form表单验证的表层原理,每个表单getFieldDecorator配置项都有个名字,比如就叫goodsSkuImg,这个goodsSkuImg对应this.props.form.goodsSkuImg如果为空则验证不通过. 3.结论:Form提示的根本原因是this.props.form.goodsSkuImg值为空 4.