Flask の url_for を使用してタグの URL を生成しようとしていますが、「+」をエンティティ/URL コード「%2B」に置き換えているようです。これはかなり醜い URL になります。'+' の方がより好まれます。
それで、私の質問は、どのように url_for を使用できますか?しかし、HTML エンティティにフォーマットせずに「+」を受け入れるようにするにはどうすればよいですか?
フラスコの url_for 関数は、werkzeug url_quote 関数を呼び出します (github のソース コードを参照)。url_quote 関数は次のように定義されます。
def url_quote(s, charset='utf-8', safe='/:'):
"""URL encode a single string with a given encoding.
:param s: the string to quote.
:param charset: the charset to be used.
:param safe: an optional sequence of safe characters.
"""
if isinstance(s, unicode):
s = s.encode(charset)
elif not isinstance(s, str):
s = str(s)
return _quote(s, safe=safe)
ですから、ここでいくつかの変更を行うことができます。