【Flask】WTForms基本使用

# WTForms笔记:
这个库一般有两个作用。第一个就是做表单验证,把用户提交上来的数据进行验证是否合法。第二个就是做模版渲染。

### 做表单验证:
1. 自定义一个表单类,继承自wtforms.Form类。
2. 定义好需要验证的字段,字段的名字必须和模版中那些需要验证的input标签的name属性值保持一致。
3. 在需要验证的字段上,需要指定好具体的数据类型。
4. 在相关的字段上,指定验证器。
5. 以后在视图中,就只需要使用这个表单类的对象,并且把需要验证的数据,也就是request.form传给这个表单类,以后调用form.validate()方法,如果返回True,那么代表用户输入的数据都是合法的,否则代表用户输入的数据是有问题的。如果验证失败了,那么可以通过form.errors来获取具体的错误信息。
示例代码如下:

 1 # coding:utf-8
 2 from flask import Flask, request, render_template
 3 from wtforms import Form, StringField, PasswordField, SubmitField
 4 from wtforms.validators import Length, DataRequired, EqualTo
 5 
 6 
 7 class RegistForm(Form):
 8     username = StringField(u'用户名', validators=[DataRequired(), Length(3, 10, message=u'请输入3-10位的用户名')])
 9     password = PasswordField(u'密码', validators=[DataRequired(), Length(6, 10)])
10     password2 = PasswordField(u'重复密码', validators=[DataRequired(), EqualTo('password')])
11     submit = SubmitField(u'注册')
12 
13 app = Flask(__name__)
14 
15 
16 @app.route('/')
17 def hello_world():
18     return 'Hello World!'
19 
20 
21 @app.route('/regist/', methods=['GET', 'POST'])
22 def regist():
23     if request.method == "GET":
24         return render_template('regist.html')
25     else:
26         form = RegistForm(request.form)
27         if form.validate():
28             return u'注册成功'
29         else:
30             print form.errors
31             return u'注册失败'
32 
33 
34 if __name__ == '__main__':
35     app.run(debug=True)

猜你喜欢

转载自www.cnblogs.com/chen0427/p/8858810.html