最新消息:20210917 已从crifan.com换到crifan.org

[已解决]Flask的Jinja中如何设置变量{{}}中的变量

Flask crifan 3733浏览 0评论

Flask中,之前对于img的引用,已经会用:

<img class="initiator-avatar" src="{{ url_for(‘static’, filename=’img/avatar/limao.jpg’) }}">

了,但是现在,想要对于url_for中的filename,也是对应变量值:

todayEvent.user.avatar_static_path

此处通过:

<img class="initiator-avatar" src="{{ url_for(‘static’, filename = todayEvent.user.avatar_static_path) }}">

但是不工作。

Template Designer Documentation — Jinja2 Documentation (2.8-dev)

难道是用:

{{ }}中间包含 {{ }}?

Flask jinjia Expressions  inside Expressions

Flask jinjia Expression  inside Expression

python – Reference template variable within Jinja expression – Stack Overflow

->说是无需嵌套{{}}

-》

<a href="{{ url_for(‘/magic’, filename=name) }}">Click to see magic happen</a>

即可。

python – Set variable in jinja – Stack Overflow

 Nest braces in square brackets in a list with flask jinja2?

去设置为原始的值:

<img class="initiator-avatar" src="{{ url_for(‘static’, filename = ‘img/avatar/oswjmv4X0cCXcfkIwjoDfCkeTVVY.png’) }}">

看看是否是图片本身存在,但是加载有问题。

确认图片是可以正常加载的:

然后后来调试期间发现:

此处的avatar_static_path的路径,实际上是空的。。。

currentUsers=[<User nickname=u’\u793c\u8c8c’ openid=oswjmv4X0cCXcfkIwjoDfCkeTVVY avatar_static_path=>]

然后再去调试,确保当时的avatar_static_path的值是:

img/avatar/oswjmv4X0cCXcfkIwjoDfCkeTVVY.png

然后也就可以正常加载显示图片了。

[总结]

Flask的Jinja中,对于表达式中的嵌套的表达式变量,具体的写法是:

<img class="initiator-avatar" src="{{ url_for(‘static’, filename = todayEvent.user.avatar_static_path) }}">

就可以了。无需额外嵌套{{}}。

转载请注明:在路上 » [已解决]Flask的Jinja中如何设置变量{{}}中的变量

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
98 queries in 0.185 seconds, using 23.42MB memory