赞
踩
@(Flask)
request对象包含客户端发出的所有请求信息。
request.form能获取POST请求中提交的表单数据。
Flask-WTF可以把处理Web表单的过程变成愉快的体验。
pip install flask-wtf
实现CSRF保护的方法:设置秘钥。
简单的做法是写到代码中,但是这种做法不够安全最好是保存在环境变量中,这类技术后序会继续再谈。
#hello.py
app = Flask(__name__)
app.config['SECRET_KEY'] = 'hard to guess string'
注意到,这里用到了app.config
字典,Python中,几乎可以见名之意,这里也不例外。
app.config的作用:存储框架、扩展、程序本身的配置变量。
写入配置值的方法:
值得注意的是,SECRET_KEY
配置变量是通用秘钥。
这个通用,指的是可在Flask和多个第三方扩展中使用。
每个Web表单都由一个继承自Form的类表示。
这个类定义了表单中的一组字段,每个字段都用对象表示。
字段对象可以附属一个或多个验证函数。
验证函数的作用:验证用户提交的输入值是否符合要求。
#简单的Web表单,包含一个文本字段和一个提交按钮
from flask_wtf import Form
from wtforms import StringField,SubmitField
from wtforms.validators import Required
class NameForm(Form):
name = StringField('What is your name?', validators=[Required()])
submit = SubmitField('Submit')
理解:表单中的字段都定义为类变量。
其中类变量的值是相应字段类型的对象。
这里的name字段,对应的是StringField的对象;
submit按钮是SubmitField的对象。
StringField类表示的是属性为type="text"
的<input>
元素。
SubmitField类表示的是是属性为type="submit"
的<input>
元素。
同时值得关注的是在StringField
构造函数中有一个可选参数:validators
,而且是以数组形式,正对应了前面说的一个字段可以有一个或者多个验证函数。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。