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

问题描述 投票:4回答:1

我有:

  • 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)
python html forms bottle
1个回答
1
投票

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

  • 如果它可以成功处理表单数据,那么它应该重定向到某种成功/下一页。
  • 如果存在验证错误,则应将其重定向回表单,可能包含查询字符串中包含的错误详细信息。
© www.soinside.com 2019 - 2024. All rights reserved.