我使用的是flask框架,似乎无法从数据库中删除行。下面的代码给出了一个405错误:“请求的URL不允许使用该方法。”有什么想法吗?
在py中:
@app.route('/delete/<postID>', methods=['POST'])
def delete_entry():
if not session.get('logged_in'):
abort(401)
g.db.execute('delete from entries WHERE id = ?', [postID])
flash('Entry was deleted')
return redirect(url_for('show_entries', post=post))
在html中:
<a href="/delete/{{ entry.id }}"><h3>delete</h3></a>
单击
<a href...>delete</a>
将发出一个GET请求,而您的delete_entry方法只响应POST。你需要一个。用表单提交按钮或2替换链接。让链接用JavaScript提交一个隐藏的表单。
以下是操作方法1:
下面是使用jQuery执行2的方法:
有一件事你应该而不是做,那就是让delete_entry方法响应GET。get应该是等幂的(可以安全地重复运行并且不执行破坏性操作)。Here's a question还有更多细节。
或者,将POST更改为DELETE,让您继续。
理想情况下,应该使用HTTP DELETE方法。
我用flaskr作为烧瓶项目的基础(看起来你也这么做了)。
在.py中:
在HTML中:
我想要一个按钮,但是您可以很容易地使用解决方案here的链接。
相关问题 更多 >
编程相关推荐