>我在烧瓶应用程序中有一个设置,我可以使用表单将文件上传到我的应用程序的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 样式路径之间进行转换。