Flask学习记录:表单

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" >'

字段的元素的HTML代码则可以通过"form.字段名.label"的形式获取:

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

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

你可能感兴趣的:(Flask,Python,Web,Flask,Flask表单)