joh*_*ond 6 html python jinja2 flask
我的问题涉及for使用 python 字典和 jinja2 创建循环。我想使用每个键/值对的值作为 HTML 中元素的源属性。
---HTML/jinja2---
{% for song, mp3 in song_dict.items() %}
<li> {{ song }} :<audio controls> <source src="{{ mp3 }}" type ="audio/mpeg"></audio>{{ mp3 }}</li>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
蟒蛇片段:
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
)
Run Code Online (Sandbox Code Playgroud)
我可以在音频播放器之后打印文本,但无法将路径传递到音频元素的 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 %}
Run Code Online (Sandbox Code Playgroud)
查看(没有每个“static/”和 double ' "" '):
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
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10160 次 |
| 最近记录: |