如何使用Python Bottle框架删除确认表单重新提交

时间:2014-05-07 00:32:29

标签: python html forms bottle

我有:

  • page1:提交表单

  • page2:验证它并返回页面

现在,当我单击后退按钮时,它不会转到第1页,而是带有"确认表单重新提交"窗口。

如何防止这种情况?基于this answer,我认为这是一种推荐的方法:

  

这是论坛上的常用技巧。 Page1上的表单将数据发布到   Page2,Page2处理数据并完成需要完成的工作   然后它自己进行HTTP重定向。这样最后的行动"该   浏览器记住第2页上的简单GET,因此表单不存在   在F5上重新提交。

但我很困惑。我应该在哪里附加我的重定向?我的page2视图如下所示:

@app.route('/StartPage',method='POST')
def test():
    username = request.forms.get('username')
    password = request.forms.get('password')
    return template('StartPage',search_string=search_string,\
                    username=username, \
                    session_id=ses_id)

1 个答案:

答案 0 :(得分:1)

要遵循POST-Redirect-GET模式,您的POST路由不应返回模板。

  • 如果它可以成功处理表单数据,那么它应该在之后 重定向到某种成功/下一页。

  • 如果出现验证错误,则应重定向回到表单,可能包含查询字符串中包含的错误详情。