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中如何设置变量{{}}中的变量