1 回答
TA贡献1877条经验 获得超6个赞
您可以在 Flask 中使用WTForm,在表单提交时将编辑后的数据传递给数据库。
Flask-WTF 为您的 Flask 应用程序提供与 WTForms 的集成。例如:` from flask_wtf import FlaskForm from wtforms import StringField from wtforms.validators import DataRequired
class MyForm(FlaskForm): name = StringField('name', validators=[DataRequired()])
`
注意从 0.9.0 版本开始,Flask-WTF 将不会从 wtforms 中导入任何内容,您需要从 wtforms 中导入字段。
此外,还会自动创建一个 CSRF 令牌隐藏字段。你可以在你的模板中呈现这个:`
<form method="POST" action="/">
{{ form.csrf_token }}
{{ form.name.label }} {{ form.name(size=20) }}
<input type="submit" value="Go">
</form>
If your form has multiple hidden fields, you can render them in one block using hidden_tag().
<form method="POST" action="/">
{{ form.hidden_tag() }}
{{ form.name.label }} {{ form.name(size=20) }}
<input type="submit" value="Go">
</form>
Validating Forms Validating the request in your view handlers:
@app.route('/submit', methods=('GET', 'POST'))
def submit():
form = MyForm()
if form.validate_on_submit():
#you can write your db logic here.
return redirect('/success')
return render_template('submit.html', form=form)
` 请注意,您不必将 request.form 传递给 Flask-WTF;它会自动加载。便利的 validate_on_submit 将检查它是否是 POST 请求以及它是否有效。
添加回答
举报