我访问的路径为/mypage?a=1&b=1&c=1
。我想创建一个指向类似网址的链接,其中一些参数已更改:/mypage?a=1&b=2&c=1
,b从1更改为2.我知道如何使用request.args
获取当前参数,但结构是不可变的,所以我不知道如何编辑它们。如何使用修改后的查询在Jinja模板中创建新链接?
答案 0 :(得分:14)
编写一个修改当前网址查询字符串并输出新网址的函数。使用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>