【问题标题】:Modify query parameters in current GET request for new url修改当前 GET 请求中新 url 的查询参数
【发布时间】:2015-09-16 05:25:05
【问题描述】:

我访问路径为/mypage?a=1&b=1&c=1 的页面。我想创建一个指向类似 url 的链接,更改了一些参数:/mypage?a=1&b=2&c=1,b 从 1 更改为 2。我知道如何使用request.args 获取当前参数,但结构是不可变的,所以我不知道不知道如何编辑它们。如何使用修改后的查询在 Jinja 模板中创建新链接?

【问题讨论】:

    标签: python url flask jinja2


    【解决方案1】:

    编写一个函数,修改当前url的查询字符串并输出一个新的url。使用 Flask 应用的 template_global 装饰器将函数添加到模板全局变量中,以便在 Jinja 模板中使用。

    from flask import request
    from werkzeug.urls import url_encode
    
    @app.template_global()
    def modify_query(**new_values):
        args = request.args.copy()
    
        for key, value in new_values.items():
            args[key] = value
    
        return '{}?{}'.format(request.path, url_encode(args))
    
    <a href="{{ modify_query(b=2) }}">Link with updated "b"</a>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-28
      • 1970-01-01
      • 2021-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多