如何在Flask Python中从URL删除参数

傻胖猫

在我的网站中,我有一些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>标记,然后将页面从以下位置更改:

@app.route("/magicpage")
def magicPage():
    param1 = request.args.get("param1")
    param2 = request.args.get("param2")

到:

@app.route("/magicpage", methods=["POST"])
def magicPage():
    param1 = request.form.get("param1")
    param2 = request.form.get("param2")

上行是没有重定向的。缺点是,如果用户尝试刷新结果页面,他们将获得有关重新提交信息的令人讨厌的浏览器弹出窗口:

Firefox刷新POST网页的确认

也就是说,这是在网络中传递隐藏参数的更常见方法。


选项2:在处理完参数后进行重定向。

这有点复杂,因为由于我们将重定向到同一页面,所以我们需要检查它们是第一次还是第二次访问此页面。

最好的方法是使用发布请求。这具有没有刷新弹出窗口的优点,但是具有在以后的页面呈现中不给您参数的缺点,除非您将其存储在会话中。

@app.route("/magicpage", methods=["GET", "POST"])
def magicPage():
    if request.method == 'POST':
        # process parameters
        return redirect(request.path)
    if request.method == "GET":
        # render page

或者,您可以仅检查是否存在以下一种参数作为指标:

@app.route("/magicpage", methods=["GET", "POST"])
def magicPage():
    if request.form.get("param1", None) is not None:
        # process parameters
        return redirect(request.path)
    else:
        # render page

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Flask应用中验证URL参数?

来自分类Dev

如何在Python Flask中输入#后访问URL段?

来自分类Dev

如何在Django视图中从URL中删除get参数

来自分类Dev

如何从URL Codeigniter中删除参数

来自分类Dev

如何在flask中使用openssl(在“Flask Web Development”中)

来自分类Dev

如何在 django python 中的 url 中传递可选参数

来自分类Dev

如何在Flask的GET请求中传递带有参数的URL?

来自分类Dev

如何在装饰器中获得Flask可选的URL参数?

来自分类Dev

如何在Flask中创建刷新按钮?

来自分类Dev

如何在Flask中获取HTTP版本

来自分类Dev

如何在javascript中访问flask配置?

来自分类Dev

如何在Flask资源中测试会话

来自分类Dev

如何在Flask中传递“ WTF对象”

来自分类Dev

如何在Flask中解码Redis响应?

来自分类Dev

如何在Flask资源中测试会话

来自分类Dev

如何在Flask中处理JSON?

来自分类Dev

如何在Flask中安装请求类?

来自分类Dev

如何在 Flask 中测试 HTTPS

来自分类Dev

如何在Flask-SQLAlchemy中按ID删除记录

来自分类Dev

如何在Python中使用Flask从URL获取JSON数据

来自分类Dev

如何在JQuery中设置Flask url_for

来自分类Dev

如何在Flask中使用url_for中的变量?

来自分类Dev

如何在Flask Framework中更改后端URL

来自分类Dev

如何在使用 AJAX 作为 HTTP 请求传递的 Python Flask 中接收对象数组作为参数?

来自分类Dev

如何在flask路由中传递url参数(在浏览器中打开时自动下载pdf的url)

来自分类Dev

如何通过.htaccess删除URL中任意位置的空参数?

来自分类Dev

如何通过.htaccess从URL中删除元素/参数

来自分类Dev

在Django中创建数组后如何删除GET url参数?

来自分类Dev

如何从页面刷新PHP的URL中删除参数

Related 相关文章

热门标签

归档