Flask学习记录:表单

本文介绍了如何使用Flask-WTF处理表单,包括定义WTForms表单类、输出HTML代码、在模板中渲染表单和错误消息。详细讨论了客户端验证、服务器端验证,以及自定义验证器和全局验证器的实现方法。此外,还讲解了如何在模板中渲染清单和错误消息,以及使用宏提高表单渲染效率。
摘要由CSDN通过智能技术生成

1. 使用Flask-WTF处理表单

1.1 定义WTForms表单类

一个表单由若干个输入字段组成,这些字段分别用类表单的类属性来表示(字段即Field,可以简单理解为表单内的输入框、按钮等部件)。

from wtforms import Form,StringField,PasswordField,BooleanField,SubmitField
from wtforms.validators import DataRequired,Length

class LoginForm(Form):
	username = StringField('Username',validators=[DataRequired(message=u'用户名不能为空')])
	password = PasswordField('Password',validators=[DataRequired(),Length(8,28)])
	remember = BooleanField('Remember me')
	submit = SubmitField('Log in')

validators参数接收一个传入可调用对象组成的列表。内置的验证器通过实现了__call()__方法的类表示,所以需要在验证器后面添加括号。

上面例子中,在name和passowrd字段里,都使用了DataRequired验证器,其中username字段中的DataRequired验证器设置了message参数,这个参数通过传入自定义错误信息(u’用户名不能为空’)来覆盖内置消息。

1.2 输出HTML代码
> > > form = LoginForm() 
> > > form.username() 
u' < input id =" username" name =" username" type =" text" value ="" >' 
> > > form.submit() 
u' < input id =" submit" name =" submit" type =" submit" value =" Submit" >'

字段的

> > > form.username.label()  
u' < label for =" username" > Username </ label >' 
> > > form.submit.label() 
u' < label for =" submit" > Submit </ label >'

在创建HTML表单时,经常会需要使HTML元素的其他属性来对字段进行设置。比如,添加class属性设置对应的CSS类为字段 添加样式;添加placeholder属性设置占位文本。默认情况下,WTForms输出的字段HTML代码只会包含id和name属性,属性值均为表单类中对应的字段属性名称。如果要添加额外的属性,通常有两种方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值