在我的网站中,我有一些url,它们将具有如下尾随参数:
example.com/magicpage/?p=10&d=somestuff
在处理请求后,是否有方法删除这些参数?因此,当用户单击链接时,会传递参数,但可见的URL很简单:
example.com/magicpage
我的代码:
@app.route("/magicpage")
def magicPage():
#parse parameters and do things
#finish up
#remove the trailing parameters in the url
#return the rendered page
有两种方法可以做到这一点。
选项1:使用POST参数而不是GET
如果参数是由HTML表单传递的,请将
method=post
添加到<form>
标记中,并将页面更改为:致:
好处是没有重定向。缺点是,如果用户尝试刷新结果页面,他们将得到关于重新提交信息的令人讨厌的浏览器弹出窗口:
也就是说,这是在web中传递隐藏参数的更常见的方法。
选项2:处理参数后执行重定向
这有点复杂,因为我们正在重定向到同一个页面,我们需要检查他们是第一次还是第二次来到这个页面。
最好的方法是使用post请求。这样做的优点是没有刷新弹出窗口,但缺点是除非将参数存储在会话中,否则在以后的页面呈现中不会向您提供这些参数。
或者,您可以检查是否有一个参数作为您的指示器:
可以使用隐藏的formfields通过
POST
在多个页面上传递参数。相关问题 更多 >
编程相关推荐