Flask 或 Django 模板里面如何将变量传入 url_for 里面

2021-08-11 09:49:14 +08:00
 sudoy

API 那里传出来的数据是一个列表(list),列表里面有字典(dictionary), 字典里面有图片名字。现在想在模板那里遍历这个列表获取图片名字,然后把这个名字作为变量传到模板中的 url_for()。现在以下两种方法测试过皆可行,但是总觉得写法有点怪怪。不知道各位老哥一般是怎么写的,可否提点一下,谢谢!

这是 API:

DATE = [
	{
	"name": "image1",
    	"date": "20210810"
	},
       {
	"name": "image2",
    	"date": "20210811"
       }
]

@app.route("/home", methods=["POST", "GET"])
def home():
	return render_template("home.html", data=DATE)

以下是模板的两种写法:

写法一:

{% for d in data: %}
	<img src="{{ url_for('static', filename='img/' + d.name + '.jpg') }}">
{% endfor %}

写法二:

{% for d in data: %}
	<img src="/static/img/{{d.name}}.jpg">
{% endfor %}
1168 次点击
所在节点    Python
3 条回复
Deteriorator
2021-08-11 16:21:00 +08:00
第一种写法比较好吧
sudoy
2021-08-11 18:25:15 +08:00
@Deteriorator 第一种写法 url_for 是官方推荐的,但是把变量传到文件名里面这样写好像有点怪怪的
cz5424
2021-08-11 23:25:45 +08:00
现在用着模板都觉得变扭,前后端分离不香吗,url_for 是官方推荐的,目的是 static 的路径可以变化

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/794997

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX