博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
wtforms
阅读量:5901 次
发布时间:2019-06-19

本文共 3107 字,大约阅读时间需要 10 分钟。

使用:

from wtforms import Formfrom wtforms.fields import simple,core,html5 # 字段来自于这里from wtforms import validators # 验证规则来自于这里from wtforms import widgets # 工具是在这里 class LoginForm(Form):    user = simple.StringField(            label='用户名', # 提示信息            validators=[validators.DataRequired(message='用户名不能为空.')], #验证规则的列表            widget=widgets.TextInput(), # 优先按他定义的方式渲染input标签            render_kw={'class': 'form-control'} # 为input标签设置属性添加类等!

渲染:

实例自定义的类对象,传入模板中,如果实例对象时传入了数据,该数据会被渲染到input框里{
{ form.name }} # 该字段的input框{
{ form.name.label }} # 该字段提示信息{
{ form.name.errors[0] }} # 该字段的错误信息,建议用这种方式,下面那种获取字段的错误信息会抛出异常{
{ form.errors }} # 全部的错误信息# 也可以使用for循环的方式,并且他的顺序不会错乱,因为Form内部维持了一个计数器{% for item in form %}

{

{item.label}}: {
{item}} {
{item.errors[0] }}

{% endfor %}

验证:

验证实例自定义类对象是传递数据form = LoginForm(formdata=request.form)if form.validate():    # 验证通过,打印数据    print(form.data)else:    print(form.error) # 打印错误信息实例化时可传递的几种数据formdata : request.data这种有get和get_list的data : 一个字典obj : obj.字段名获得数据的,比如模型类对象from wtforms import Form, validators, widgetsfrom wtforms.fields import simple, coreclass RegForm(Form):    username = simple.StringField(            label="用户名",        validators=[            validators.DataRequired(message="用户名不能为空"),   #校验器返回错误信息在files.errors中            validators.Length(min=4, max=8, message="用户名必须大于4小于8")        ],        render_kw={"class":"my_class"}    #定义标签的属性    )     hobby = core.SelectMultipleField(        label="癖好",        choices=(            (1, "萝莉"),            (2, "御姐"),            (3, "小哥哥"),            (4, "正太")        ),        # widget=widgets.,        widget=widgets.ListWidget(prefix_label=False),        option_widget=widgets.CheckboxInput(),          #小部件wdget渲染前端页面        coerce=int,        default=(1, 4)    )    字段类型:    imple是简单常用的包括:['BooleanField', 'TextAreaField', 'PasswordField', 'FileField',   'HiddenField', 'SubmitField', 'TextField']core是不太常用的(    'BooleanField', 'DecimalField', 'DateField', 'DateTimeField', 'FieldList',    'FloatField', 'FormField', 'IntegerField', 'RadioField', 'SelectField',    'SelectMultipleField', 'StringField',)html5中的标签自带正则(浏览器校验)(    'DateField', 'DateTimeField', 'DateTimeLocalField', 'DecimalField',    'DecimalRangeField', 'EmailField', 'IntegerField', 'IntegerRangeField',    'SearchField', 'TelField', 'URLField',   常用的校验规则    DataRequired:非空验证,message=错误信息    Email:邮箱格式验证,message=错误信息    Length: 长度验证,min=最短,max=最长,message=错误信息    Regexp: 正则匹配,regex正则表达式,message=错误信息    EqualTo:与其他字段的值比较是否相同,fieldname=其他字段名,message=错误信息 自定义验证-钩子# 为一个字段设置验证def validate_字段名(self, field):    print(field.data) # 当前字段传过来的值    print(self.data) # 当前传过来的所有的值:name,gender......    if 验证失败:        raise validators.ValidationError("继续后续验证")        # raise validators.StopValidation("不再继续后续验证") 小部件: wtforms.widgets提供了许多的表单样式,每个字段都有默认的widget,通过设置widget可以修改渲染出来的样式('CheckboxInput', 'FileInput', 'HiddenInput', 'ListWidget', 'PasswordInput',   'RadioInput', 'Select', 'SubmitInput', 'TableWidget', 'TextArea',   'TextInput', 'Option')

转载于:https://www.cnblogs.com/litieshuai/p/10446102.html

你可能感兴趣的文章
我的友情链接
查看>>
CDN相关
查看>>
Tomcat的设置4——Tomcat的体系结构与设置基于端口号的虚拟主机
查看>>
三种判断端口存活的方法和链接200的判断方法
查看>>
我的友情链接
查看>>
ftp协议基础
查看>>
顺时针打印矩阵
查看>>
JAXB
查看>>
端口聚合配置
查看>>
访问共享经常中断
查看>>
当你有一个锤子,你看什么都像钉子
查看>>
一个很实用的samba案例
查看>>
100个MySQL的调节和优化的提示
查看>>
HostMonster主机修改文件权限的方法
查看>>
人生的交易
查看>>
TP5中关联模型的使用详解
查看>>
springMVC注解之入门
查看>>
不用花钱!Android模拟器让你在电脑上免费体验谷歌手机
查看>>
MySql
查看>>
算法分析与设计——贪心法实验报告
查看>>