gpt4 book ai didi

python - 如何将 jinja2 变量插入到 html 元素的属性中?

转载 作者:行者123 更新时间:2023-12-05 05:11:46 26 4
gpt4 key购买 nike

我的问题涉及使用 python 字典和 jinja2 创建一个 for 循环。我想使用每个键/值对的值作为 HTML 中元素的源属性。

---HTML/jinja2---

{% for song, mp3 in song_dict.items() %}
<li> {{ song }} :<audio controls> <source src="{{ mp3 }}" type ="audio/mpeg"></audio>{{ mp3 }}</li>
{% endfor %}

python 片段:

def home():    
song_dict = {"Pumba":'"static/PUMBA_1.mp3"', "You're Feet":'"static/youre feet mix 1.8.17_1.mp3"',
"ratatatatata":'"static/ratatat.mp3"',
"12 | 8":'"static/12_8 NO CLICK.mp3"', "Sage to Your Internet" : '"static/sage to your internet.mp3"',
"EB":'"static/EB DEMO MIX NO CLICK.mp3"'}

return render_template("pet_friend.html",
song_list = song_list,
song_dict = song_dict
)

我可以在音频播放器之后打印文本,但我无法将路径传递给音频元素的 src 属性。

任何帮助/建议将不胜感激!

最佳答案

路径应该是'/static/PUMBA_1.mp3'而不是'"static/PUMBA_1.mp3"'(带前导/)

但是如果您已经将文件存储在静态文件夹中,那么在 jinja 模板中提供文件的最简单方法是调用此函数:url_for('static',filename=your_file.mp3)

它会自动创建一个指向静态文件夹的路径,并允许您更改它而无需修改所有内容(因此您可以删除 song_dict 中的所有“静态”)。


神社模板:

{% for song, mp3 in song_dict.items() %}
<li>{{ song }}:<audio controls>
<source src="{{ url_for('static',filename=mp3) }}" type ="audio/mpeg">
</audio>{{ mp3 }}</li>
{% endfor %}

View (没有每个“static/”和双 ' ""'):

def home():
song_dict = {"Pumba":'PUMBA_1.mp3', "You're Feet":'youre feet mix 1.8.17_1.mp3',
"ratatatatata":'ratatat.mp3'}

return render_template("pet_friend.html",
song_dict = song_dict
)

关于python - 如何将 jinja2 变量插入到 html 元素的属性中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55211602/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com