djangoforms表单验证

  1. 创建个类,继承于 forms.form
  2. obj = FM(request.post)
  3. obj.is_valid() 如果验证没有问题会返回true,否则会返回false
  4. 错误信息会保存在obj.errors里面,如果正确的话数据会返回到cleaned_data,且这是一个字典

初始化数据

dic= {
'user':'r1',
'pwd':'r2',
}
obj = FM(initial=dic)

filed参数

    Field
required=True,               是否允许为空
widget=None,                 HTML插件
label=None,                  用于生成Label标签或显示内容
initial=None,                初始值
help_text='',                帮助信息(在标签旁边显示)
error_messages=None,         错误信息 {'required': '不能为空', 'invalid': '格式错误'}
show_hidden_initial=False,   是否在当前插件后面再加一个隐藏的且具有默认值的插件(可用于检验两次输入是否一直)
validators=[],               自定义验证规则
localize=False,              是否支持本地化
disabled=False,              是否可以编辑
label_suffix=None            Label内容后缀CharField(Field)
max_length=None,             最大长度
min_length=None,             最小长度
strip=True                   是否移除用户输入空白IntegerField(Field)max_value=None,              最大值min_value=None,              最小值FloatField(IntegerField)
...DecimalField(IntegerField)max_value=None,              最大值min_value=None,              最小值max_digits=None,             总长度decimal_places=None,         小数位长度BaseTemporalField(Field)input_formats=None          时间格式化   
DateField(BaseTemporalField)    格式:2015-09-01
TimeField(BaseTemporalField)    格式:11:12
DateTimeField(BaseTemporalField)格式:2015-09-01 11:12DurationField(Field)            时间间隔:%d %H:%M:%S.%f...RegexField(CharField)regex,                      自定制正则表达式max_length=None,            最大长度min_length=None,            最小长度error_message=None,         忽略,错误信息使用 error_messages={'invalid': '...'}EmailField(CharField)      ...FileField(Field)allow_empty_file=False     是否允许空文件ImageField(FileField)      ...注:需要PIL模块,pip3 install Pillow以上两个字典使用时,需要注意两点:- form表单中 enctype="multipart/form-data"- view函数中 obj = MyForm(request.POST, request.FILES)URLField(Field)...BooleanField(Field)  ...NullBooleanField(BooleanField)...ChoiceField(Field)...choices=(),                选项,如:choices = ((0,'上海'),(1,'北京'),)required=True,             是否必填widget=None,               插件,默认select插件label=None,                Label内容initial=None,              初始值help_text='',              帮助提示ModelChoiceField(ChoiceField)...                        django.forms.models.ModelChoiceFieldqueryset,                  # 查询数据库中的数据empty_label="---------",   # 默认空显示内容to_field_name=None,        # HTML中value的值对应的字段limit_choices_to=None      # ModelForm中对queryset二次筛选ModelMultipleChoiceField(ModelChoiceField)...                        django.forms.models.ModelMultipleChoiceFieldTypedChoiceField(ChoiceField)coerce = lambda val: val   对选中的值进行一次转换empty_value= ''            空值的默认值MultipleChoiceField(ChoiceField)...TypedMultipleChoiceField(MultipleChoiceField)coerce = lambda val: val   对选中的每一个值进行一次转换empty_value= ''            空值的默认值ComboField(Field)fields=()                  使用多个验证,如下:即验证最大长度20,又验证邮箱格式fields.ComboField(fields=[fields.CharField(max_length=20), fields.EmailField(),])MultiValueField(Field)PS: 抽象类,子类中可以实现聚合多个字典去匹配一个值,要配合MultiWidget使用SplitDateTimeField(MultiValueField)input_date_formats=None,   格式列表:['%Y--%m--%d', '%m%d/%Y', '%m/%d/%y']input_time_formats=None    格式列表:['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']FilePathField(ChoiceField)     文件选项,目录下文件显示在页面中path,                      文件夹路径match=None,                正则匹配recursive=False,           递归下面的文件夹allow_files=True,          允许文件allow_folders=False,       允许文件夹required=True,widget=None,label=None,initial=None,help_text=''GenericIPAddressFieldprotocol='both',           both,ipv4,ipv6支持的IP格式unpack_ipv4=False          解析ipv4地址,如果是::ffff:192.0.2.1时候,可解析为192.0.2.1, PS:protocol必须为both才能启用SlugField(CharField)           数字,字母,下划线,减号(连字符)...UUIDField(CharField)           uuid类型...

form内置插件

TextInput(Input)
NumberInput(TextInput)
EmailInput(TextInput)
URLInput(TextInput)
PasswordInput(TextInput)
HiddenInput(TextInput)
Textarea(Widget)
DateInput(DateTimeBaseInput)
DateTimeInput(DateTimeBaseInput)
TimeInput(DateTimeBaseInput)
CheckboxInput
Select
NullBooleanSelect
SelectMultiple
RadioSelect
CheckboxSelectMultiple
FileInput
ClearableFileInput
MultipleHiddenInput
SplitDateTimeWidget
SplitHiddenDateTimeWidget
SelectDateWidget

转载于:https://www.cnblogs.com/wspblog/p/6358209.html

python自动化之djangoform表单验证相关推荐

  1. 最常用的15个前端表单验证JS正则表达式

    2019独角兽企业重金招聘Python工程师标准>>> 在表单验证中,使用正则表达式来验证正确与否是一个很频繁的操作,本文收集整理了15个常用的JavaScript正则表达式,其中包 ...

  2. python表单验证_python表单验证封装

    在Web程序中往往包含大量的表单验证的工作,如:判断输入是否为空,是否符合规则. hello hostname: ip: port: phone: HTML #!/usr/bin/env python ...

  3. flask-wtf表单验证--修改邮箱密码

    一.介绍   使用Flask-wtf可以很方便用户进行对应字段的验证,即验证过程自动化,使用主要包含三个步骤: 创建 Flask-wtf 表单,设置相关的属性和验证条件 在前端利用form直接显示对应 ...

  4. Bootstrap表单验证插件bootstrapValidator使用方法整理

    插件介绍 先上一个图: 下载地址:https://github.com/nghuuphuoc/bootstrapvalidator 使用方法:http://www.cnblogs.com/huangc ...

  5. Web框架——Flask系列之WTF表单验证练习(七)

    一.Web表单 web表单是web应用程序的基本功能. 它是HTML页面中负责数据采集的部件.表单有三个部分组成:表单标签.表单域.表单按钮.表单允许用户输入数据,负责HTML页面数据采集,通过表单将 ...

  6. Django之Form表单验证组件Tyrion

    Tyrion是一个基于Python实现的支持多个WEB框架的Form表单验证组件,其完美的支持Tornado.Django.Flask.Bottle Web框架.Tyrion主要有两大重要动能: 表单 ...

  7. Html form表单验证

    (2017-8-6 17:47:18) 表单验证 02 #!/usr/bin/env python # -*- coding:utf-8 -*-import tornado.ioloop import ...

  8. 视频教程-Web前端开发利器 SPRY框架之表单验证-JavaScript

    Web前端开发利器 SPRY框架之表单验证 有17年互联网行业从业经验,始终在教学第一线,勇于创新,从有效教学,不断向高效教学转变.始终坚持"学生为主体,教师为主导:商业化案例,企业化情境& ...

  9. Flask项目实战——6—(前台用户模型、前台登录注册、图形验证码、手机短信验证码、添加表单验证短信验证码请求)

    1.前台用户模型 前台用户模型定义 创建前台模型文件 apps/front/models.py # -*- encoding: utf-8 -*- """ @File : ...

最新文章

  1. 谷歌搜索喜迎20年,为手机主页添加信息流!
  2. python17个常见问题_17个Python 常见错误的分析,你都遇到过哪些?
  3. 06 Java程序员面试宝典视频课程之Javascript
  4. qt creator 信号与槽 代码实现 (二)
  5. XCTF-MISC-新手区-gif
  6. vim环境配置 +vimplus配置
  7. java 自动编译_Tomcat是否自动编译Java Servlet?
  8. day03_js学习笔记_03_js的事件、js的BOM、js的DOM
  9. PyMySQL和MySQLdb的区别
  10. 阅读论文《MOJITALK: Generating Emotional Responses at Scale》——ACL2018
  11. ARMA模型结合PSO算法进行股票预测
  12. 12306火车票助手
  13. 基于Photoshop CC2018讲解PS最新入门到精通
  14. 那些10万变百万的矿工,都是从选对挖矿币种开始的!
  15. 量子力学在计算机上的应用论文,《浅谈量子力学的发展与利用》-毕业论文.docx...
  16. android手机安装ubuntu并创建ubuntu图形界面(1)
  17. 苹果⼿手机实时和历史位置定位指南
  18. JS 实现鼠标进入变色
  19. Excel数据透视表只能求和运算?快来学习求差运算小技巧
  20. 嘀嘀打车、快的打车该醒醒了

热门文章

  1. bigdata是什么
  2. 退休后能领到4000元以上的养老保险金处于什么水平呢?
  3. “有钱人大多不快乐”这种观点,只是普通人的心理安慰吗?
  4. 大众仪表板上为什么30km,50km处要标红?
  5. 培养你的“翁格玛丽”
  6. 在软件工程中有两件难事
  7. 5.10地址信息函数
  8. QUdpSocket
  9. 如何在github上下载某个项目的单独某个目录
  10. 如何在Windows Server 2016上配置iSCSI启动器