quote_plus URL-在 Jinja2 中编码过滤器

quote_plus URL-encode filter in Jinja2

Jinja 中有一个 urlencode 过滤器,可以与 {{ url | urlencode }} 一起使用,但我正在寻找 "plus" 版本,用 + 替换空格而不是 %20,例如 urllib.quote_plus()。有现成的东西吗?是时候自定义过滤器了吗?

不,Jinja2 没有像 quote_plus 这样的内置方法;您将需要创建自定义过滤器。

Python

from flask import Flask
# for python2 use 'from urllib import quote_plus' instead
from urllib.parse import quote_plus

app = Flask('my_app')    
app.jinja_env.filters['quote_plus'] = lambda u: quote_plus(u)

HTML

<html>
   {% set url = ' %}
   {{ url|quote_plus }}
</html>