我正在使用Flask构建WebApp。作为应用程序的一部分,我下面有一些数据表和一些执行某些操作的按钮。通过获取具有属性<tr>
的表的class="selected"
元素,并将id
属性的值传递到烧瓶路径,这些按钮起作用。
这是相关的javascript:
function submitDelete(action) {
var data = buildIDPayload(); // which returns a dictionary in form {'ids':[1,2,3]}
$.ajax({
method: "POST",
url: "/delete",
data: JSON.stringify(data),
contentType: 'application/json;charset=UTF-8',
success: console.log('Data Submitted')
});
clearSelections();
};
这是将数据发送到的Flask路线:
@app.route('/delete', methods=['GET', 'POST'])
@login_required
def delete_users():
data = request.get_json(force=True)
for i in data['ids']:
u = User.query.filter_by(id=i).first()
db.session.delete(u)
db.session.commit()
return redirect(url_for('users'))
数据库功能都可以正常工作,但是我正在努力使页面有序地刷新。如果我通过将刷新设置为success: location.href = '/users'
来将刷新设置为ajax POST中成功参数的一部分,则刷新触发之前完成烧瓶路由,删除传递给的用户它,这意味着它们仍然存在于刷新页面的表中。另一方面,如果我不使用succcess
参数来触发刷新,而是依靠delete_users()
返回烧瓶redirect
……根本没有发生任何事情,那就永远不会刷新(尽管删除正常)。
所以;我如何获得ajax或flask重定向到URL,然后将 传递给ajax发布到其的瓶路径完成处理?