yoluna sahip bir sayfaya erişiyorum. Bazı parametreler değiştiğinde benzer bir url için bir bağlantı oluşturmak istiyorum: /mypage?a=1&b=2&c=1
, b 1'den 2'ye değiştirildi. Geçerli argümanları request.args
ile nasıl alacağımı biliyorum, ancak yapı değişmez, bu yüzden nasıl yapılacağını bilmiyorum onları düzenleyin. Değiştirilen sorgu ile Jinja şablonunda nasıl yeni bir bağlantı kurabilirim?Yeni url için geçerli GET isteğindeki sorgu parametrelerini değiştirin
6
A
cevap
10
Geçerli URL'nin sorgu dizesini değiştiren ve yeni bir url çıkaran bir işlev yazın. Flask uygulamanızın template_global
dekoratörünü kullanarak şablonu küresel globals'a ekleyin, böylece Jinja şablonlarında kullanılabilir.
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>