【发布时间】:2014-01-31 13:40:11
【问题描述】:
这是基于官方文档中的 Flask 教程。我正在尝试添加一个删除选项,以便我可以删除我不再想要的帖子。我的 if 语句引发了错误,但我不知道为什么。
除了解决我的按钮问题之外,我还有其他几个问题。
为什么要将表单的操作设置为“。”
为什么我不能只设置要删除的按钮名称并忽略该值? (即如果 request.form['delete']: )
如果我想指定要删除的帖子,将帖子 ID 获取到此删除页面的最佳方法是什么(我的测试数据库有一个 id 列)?
我的模板:
{% for message in get_flashed_messages() %}
<div class=flash>
{{ message }}
</div>
{% endfor %}
<form action="." method="POST">
<input type="submit" name="button" value="Delete">
<a href="{{ url_for('show_entries') }}">Cancel</a>
</form>
我的 .py 文件:
@app.route('/delete', methods=['GET', 'POST'])
def remove_entry():
if request.form['button'] == 'Delete':
flash("Hello world")
# delete post
#g.db.execute('DELETE FROM entries (id) VALUES (?)',something])
#g.db.commit()
#return redirect(url_for('show_entries'))
return render_template('delete.html')
【问题讨论】:
-
您是否使用了 CSRF 保护扩展(如 Flask-WTF)?表单操作中的
"."仅表示:回发到与表单本身的 URL 相同的 URL。 -
是的,你可以忽略按钮的值,只测试
request.form是否有那个键。 -
但是,请务必将您的问题保留在此处,每次一个问题。
-
不,我不是。我刚刚开始使用 Flask,所以我对所有可以导入的库都是新手。你推荐一个好的学习资源吗?