我正在使用Flask框架,我正在尝试从数据库中删除一个条目。下面的代码给出了这个错误:“请求的URL不允许使用该方法。”
在html中:
<form action="{{ url_for('delete_entry', id=entry.id) }}" method="POST">
<input type="hidden" name="_method" value="DELETE" />
<input type="submit" value="Delete entry" />
</form>
在py:
@app.route('/delete', methods=['DELETE'])
def delete_entry(postID):
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'))
如何从html到py?
获取正确的postID答案 0 :(得分:3)
如果您要使用POST请求,该变量将在烧瓶request.form
下可用。如果你继续使用DELETE我认为你需要改变你的uri。例如:
@app.route('/delete/<int:postID>', methods=['DELETE'])
答案 1 :(得分:0)
要获取postID,请使用此{{ loop.revindex }}
这是我的代码,它有效!!
在.py:
中@app.route('/delete', methods=['POST'])
def delete_entry():
if not session.get('logged_in'):
abort(401)
db = get_db()
db.execute('delete from entries where id = ?'[request.form['entry_id']])
db.commit()
flash('Entry deleted')
return redirect(url_for('show_entries'))
在HTML中:
<form action="{{ url_for('delete_entry') }}" method=post class=delete-entry>
<input type="hidden" name="entry_id" value="{{ loop.revindex }}">
<input type="submit" value="Delete" />
</form>