1 回答

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超6個(gè)贊
您可以在 Flask 中使用WTForm,在表單提交時(shí)將編輯后的數(shù)據(jù)傳遞給數(shù)據(jù)庫(kù)。
Flask-WTF 為您的 Flask 應(yīng)用程序提供與 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 版本開(kāi)始,F(xiàn)lask-WTF 將不會(huì)從 wtforms 中導(dǎo)入任何內(nèi)容,您需要從 wtforms 中導(dǎo)入字段。
此外,還會(huì)自動(dòng)創(chuàng)建一個(gè) CSRF 令牌隱藏字段。你可以在你的模板中呈現(xiàn)這個(gè):`
<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)
` 請(qǐng)注意,您不必將 request.form 傳遞給 Flask-WTF;它會(huì)自動(dòng)加載。便利的 validate_on_submit 將檢查它是否是 POST 請(qǐng)求以及它是否有效。
添加回答
舉報(bào)