Jinja2:将十六进制转换为 Base64

Emm*_*t B 2 python jinja2

这可能吗?

假设我有一个十六进制值32ABE23,是否有过滤器将其显示为 Base64?嗯,我看到有 | b64encode筛选。

我尝试跟随但没有成功

{{ 32ABE23 | string() | b64encode }}
Run Code Online (Sandbox Code Playgroud)

我得到

TemplateAssertionError: no filter named 'b64encode'
Run Code Online (Sandbox Code Playgroud)

Tom*_*rdt 5

你可以在 Jinja2 中定义你自己的过滤器:

import base64
def b64encode(s):
    return base64.b64encode(s)

jinja2_environment.filters['b64encode'] = b64encode
Run Code Online (Sandbox Code Playgroud)

当然,这可以简化为:

import base64
jinja2_environment.filters['b64encode'] = base64.b64encode
Run Code Online (Sandbox Code Playgroud)