Base64在jinja中解码字符串

ske*_*ton 4 python jinja2 flask

我是新手使用python和flask并且非常喜欢它.我正在返回一个查询以显示在jinja模板中,并且我返回的一个列具有base64数据.如何解码该数据并显示它.

Ruh*_*min 13

在 jinja 中使用 Base64 编码的字符串:

{{ encoded | b64decode }}
{{ decoded | b64encode }}
Run Code Online (Sandbox Code Playgroud)

更多http://docs.ansible.com/ansible/playbooks_filters.html

  • 它仅适用于 ansible jinja2 实现 https://github.com/ansible/ansible/blob/ed7623ecdec8585282ce91f1534d02e6a38c22a4/lib/ansible/plugins/filter/core.py#L377 (3认同)
  • 请注意,结果必须是有效的 UTF-8 字符串,否则您将在其中获得 U+FFFE 替换字符。(例如,您不能以这种方式安全地处理 base64 编码的公钥。) (2认同)

Mak*_*hod 5

您可以尝试编写自定义过滤器

# add filter to jinja2 env
environment.filters['b64decode'] = base64.b64decode

# in template use
{{ value|b64decode }}
Run Code Online (Sandbox Code Playgroud)

  • 它的默认过滤器仅适用于 ansible,不适用于 jinja https://jinja.palletsprojects.com/en/2.10.x/templates/#list-of-builtin-filters (2认同)