Python Flask-避免在动态表上过帐返回到渲染模板
我有一个使用flask的python应用程序,它有以下核心路线:Python Flask-避免在动态表上过帐返回到渲染模板,python,mysql,flask,Python,Mysql,Flask,我有一个使用flask的python应用程序,它有以下核心路线: @app.route('/test_limit', defaults={'page':1}) @app.route('/test_limit/page/<int:page>') def test_results_limit(page): perpage=10 startat=page*perpage results = [] cursor = db.cursor() cursor
@app.route('/test_limit', defaults={'page':1})
@app.route('/test_limit/page/<int:page>')
def test_results_limit(page):
perpage=10
startat=page*perpage
results = []
cursor = db.cursor()
cursor.execute('SELECT * from pi_fb_limit limit %s, %s;', (startat,perpage))
table = list(cursor.fetchall())
return render_template('results_limits.html', table=table)
@app.route('/infringement/FB/<int:id>')
def infringement(id):
cursor = db.cursor()
cursor.execute('UPDATE p_test_search SET infringement = ''TRUE'' WHERE ID = %s', (id))
db.commit()
return render_template('results_limits.html')
@app.route('/test_limit',默认值={'page':1})
@应用程序路线('/test_limit/page/'))
def测试结果限制(第页):
每页=10
startat=每页*页
结果=[]
cursor=db.cursor()
cursor.execute('SELECT*from pi_fb_limit%s,%s;',(开始,每页))
table=list(cursor.fetchall())
返回渲染模板('results\u limits.html',table=table)
@app.route(“/invalition/FB/”)
def侵权(id):
cursor=db.cursor()
cursor.execute('UPDATE p_test_search SET invalicing='TRUE',其中ID=%s',(ID))
db.commit()
返回渲染模板('results\u limits.html')
在我的HTML文件“result_limits.HTML”中,我有以下迭代MySQL资源的HTML代码:
</table>
<tbody>
{% for tab in table %}
<tr class="zoomin">
<th> {{tab[0]}} </th>
<td> {{tab[9]}} </td>
<td><button type="button" onclick="location.href='/infringement/FB/'+{{tab[0]}};return false;" class="btn btn-danger">Infringement</button></td>
</tr>
{% endfor %}
</tbody>
</table>
{表%中的制表符为%1}
{{tab[0]}
{{tab[9]}
侵权
{%endfor%}
一切正常,但我的问题是,当上面的按钮以友好方式调用route@app.route('/invertion/FB/')时,浏览器被重定向到
result_limits.html。
相反,我希望避免任何重定向,并保持在同一页上,每个行按钮都在创建post(以更新记录)
有什么建议吗?
非常感谢。
雷格斯
SL您需要使用JavaScript提交数据,而无需重新加载页面 比如:
功能提交(id){
this.removeAttribute('onclick');//防止两次sumbitting。
var x=新的XMLHttpRequest();
x、 open('GET','/invalition/FB/'+id,true);
x、 onload=函数(){
this.textContent='已发送侵权报告!';
}
x、 onerror=函数(错误){
(console.error | | console.log)(错误);
this.textContent='发生错误。请重试';
this.onclick=function(){sumbit_(id);}
}
this.textContent='发送侵权报告…';
x、 发送(空);
}
侵权