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

use*_*619 5 html python forms bottle

我有:

  • page1:提交表格

  • page2:验证并返回页面

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

我该如何预防?基于此答案,我认为这是推荐的方法:

这是论坛上的常用技术。Page1上的Form将数据发布到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)
Run Code Online (Sandbox Code Playgroud)

nko*_*rth 3

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

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

  • 如果存在验证错误,它应该重定向回表单,可能会在查询字符串中包含错误详细信息。