将url_for分配给变量并将其用作render_template中的参数不起作用

时间:2019-03-23 16:13:33

标签: python flask

我遇到了url_for问题,我使用在views.py中放入变量的html代码构建了索引页,此变量作为参数传递给render_template函数,在索引页中带有{{1 }}我可以从函数中获取html代码,并在页面加载到href中时很好地显示几乎所有数据,但是我看不到正确的路由,但是我看到的是{{ content }}而不是{{1} }。

这是views.py

<a href="url_for('detail')">

谢谢

1 个答案:

答案 0 :(得分:0)

Flask的url_for依赖于请求上下文,您不能将其放在view函数之外,请尝试将for循环移到home函数中。

此外,您应该使用Jinja语法在模板(index.html)中直接编写for循环,而不是在Python中加入HTML代码。例如:

<body>
{% for dog in dogs %}
    Put your html code here.
    You can generate URL like this: <a href="{{ url_for('detail') }}">
{% endfor %}
</body>

另外,请记住将dogs变量传递给render_template:

@app.route('/')
def home():
     return render_template("index.html", dogs=dogs)

阅读Jinja documentation了解更多详细信息。