为新 url 修改当前 GET 请求中的查询参数
Modify query parameters in current GET request for new url
我访问了路径为 /mypage?a=1&b=1&c=1
的页面。我想创建一个类似于 url 的 link,更改一些参数:/mypage?a=1&b=2&c=1
,b 从 1 更改为 2。我知道如何使用 [=13= 获取当前参数],但结构是不可变的,所以我不知道如何编辑它们。如何使用修改后的查询在 Jinja 模板中创建新的 link?
编写一个函数来修改当前 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>
我访问了路径为 /mypage?a=1&b=1&c=1
的页面。我想创建一个类似于 url 的 link,更改一些参数:/mypage?a=1&b=2&c=1
,b 从 1 更改为 2。我知道如何使用 [=13= 获取当前参数],但结构是不可变的,所以我不知道如何编辑它们。如何使用修改后的查询在 Jinja 模板中创建新的 link?
编写一个函数来修改当前 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>