您的视图接受
GET并
POST请求。
request.form仅在上填写
POST。如果您尝试访问不存在的密钥,则会引发400错误。
GET最初页面时没有键。
造成这种情况的常见模式是守护需要代码
request.form在一个
if request.method =='POST'块中。处理
POST请求后返回重定向,否则返回渲染的模板。
from flask import url_for, redirect, render_template@app.route('/addplayer', methods=['GET', 'POST'])def addplayer(): if request.method == 'POST': Post( name=request.form['name'], available=request.form['available'] ).save() return redirect(url_for('index')) return render_template('addplayer.html')
由于您似乎正在使用Flask-WTF,因此可以使用表单的
validate_on_submit方法而不是使用check
method。在这种情况下,您还可以通过表单实例访问数据,并使用该表单为您呈现输入。
from flask import url_for, redirect, render_template@app.route('/addplayer', methods=['GET', 'POST'])def addplayer(): form = AddPlayerForm() if form.validate_on_submit(): Post( name=form.name.data, available=form.available.data ).save() return redirect(url_for('index')) return render_template('addplayer.html', form=form)<form method=post> {{ form.hidden_tag() }} {{ form.name.label}} {{ form.name }}<br> {{ form.available.label }} {{ form.available }}<br> <input type=submit value="Add Player"></form>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)