Filtro Urlencode em Jinja2

Jinja2 carece de um urlencodefiltro integrado clássico ( http://jinja.pocoo.org/docs/templates/#builtin-filters ). Aqui está um simples:

import urllib
from markupsafe import Markup

@app.template_filter('urlencode')
def urlencode_filter(s):
if type(s) == 'Markup':
s
= s.unescape()
s
= s.encode('utf8')
s
= urllib.quote_plus(s)
return Markup(s)

Em seguida, use-o em seu modelo Jinja2:

{{  variable_to_encode | urlencode }}