python - Flask 静态文件路由中的变量 [url_for ('static' , 文件名 ='' )]

标签 python flask

<分区>

我正在制作一个简单的音乐应用。 我想让用户上传他们的音频文件,并且我有一个页面,我打算在其中显示所有歌曲。 我创建了一个模板,结构如下:

{% for song in songs %}
    <div class="chart-item">
        <div class="chart-position col-md-1">
            <h3>#u</h3>
        </div> <!-- chart-position -->
        <div class="band-logo col-md-2">
            <img src="{{ url_for('static', filename='uploads/users/{{ song['artistName'] }}/{{ song['pathToCover'] }}')}}">
        </div> <!-- band-logo -->
        <div class="band-name-and-autio col-md-9">
            <div class="band-name">{{ song['artistName'] }} - {{ song['songName'] }}</div> <!-- band-name -->
            <div class="audio">
                <audio>

                </audio>
            </div> <!-- audio -->
        </div> <!-- band-name-and-autio -->
        <div class="clearfix"></div>
    </div> <!-- chart-item -->
{% endfor %}

这里我想做一个覆盖图片的动态路径和一个记录,但是我不知道在这里正确写文件的路径:

<img src="{{ url_for('static', filename='uploads/users/{{ song['artistName'] }}/{{ song['pathToCover'] }}')}}">

请解释一下如何做。我试图在 Flask 网页上找到解决方案,但目前没有任何结果。

最佳答案

我不相信你可以像那样嵌套模板标签。但你也不应该需要。

<img src="{{ url_for('static', filename='uploads/users/') }}{{ song['artistName'] }}/{{ song['pathToCover'] }}">

您可以从以下示例中了解为什么这样做:

>>> from flask import Flask, url_for
>>> app = Flask(__name__)
>>> with app.test_request_context():
...    print url_for('static', filename='uploads/users/')
/static/uploads/users/

那么你只需要添加artistName, /, pathToCover

关于python - Flask 静态文件路由中的变量 [url_for ('static' , 文件名 ='' )],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19511175/

相关文章:

python - 给定改变属性的函数计算对象属性的 "closure"

python-3.x - 发送带有内嵌图像的电子邮件 Flask-Mail?

python - 在线程中运行 flask-socketio

postgresql - docker-compose 有一些问题

python - 不可哈希类型 : 'dict' in Flask app

Python - 返回元组列表

Python——输出文件中的数据位于不方便的位置

python - 删除最小化和最大化按钮

python - 哪些编程语言功能非常适合开发实时编码框架?

python - Flask reSTLess 无法构造查询