在烧瓶/金贾2中正确显示文件路径



>我在烧瓶应用程序中有一个设置,我可以使用表单将文件上传到我的应用程序的static/img目录中,元数据存储在数据库中的记录中。

当有人向相应的页面发出请求时,我想使用保存在数据库中的文件路径从服务器读取文件。

下面是从数据库中提取记录时的示例:

(3, 'My Info', 'My Description', 'www.url.com', 'static\img\aws_nameservers.PNG')

我想做的是将上述记录中的最后一项与url_for函数相结合,以渲染存储在该位置的图像。

我现在拥有的是一个获取文件路径最后一部分的set方法:

{% set filepath = workshop_info[4][7:] %}

这将返回img\aws_nameservers.PNG

然后在img标签中,我有以下内容:

<img src="{{ url_for('static', filename=filepath) }}">

这给了我以下结果:

<img src="/static/img%5Caws_nameservers.PNG">

这似乎是一件简单的事情,但我无法弄清楚如何在 jinja2 模板中正确呈现字符串。

谢谢。

如果有比我正在尝试的更好的方法,我很乐意得到纠正。

你应该在文件路径上使用正斜杠(/(而不是反斜杠((。您可以使用过滤器在 Python 代码或模板中替换它们,例如:

{% set filepath = "img\aws_nameservers.PNG" | replace("\", "/") %}
{{ url_for('static', filename=filepath) }}
# Outputs: /static/img/aws_nameservers.PNG

您还可以使用pathlib模块在 Windows 和 Unix 样式路径之间进行转换。

最新更新