在Jinja2中呈现带点的字符串时的奇怪行为

2024-04-27 03:28:08 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的代码:

file = 'http://www.example.com/cdn/.eJwdyjsKksjdbf-sjhdfb-kajsfbnksj'

link = '%s/cdn/%s' % (self.base_url, file)
app.log.debug('link is: %s' % link)
return template.render(link_text=link_text, link=link)

这里日志的输出如下:

^{pr2}$

但是链接部分的template.render的输出是:

^{3}$

生成的链接缺少带有.的部分!这是不是意味着jinja2在这个字符上表现得很奇怪?!我能解决这个问题吗?在


Tags: 代码textcomhttp链接examplewwwlink
1条回答
网友
1楼 · 发布于 2024-04-27 03:28:08

您需要将html标记为安全的,否则Jinja将执行自动转义。这很简单:

from jinja import Markup

...
return template.render(link_text=link_text, link=Markup(link))

另一种方法是从html模板本身开始-只需将变量标记为安全:

^{pr2}$

相关问题 更多 >