这是我在 Django 中的 views.py 文件
def twitter_trend(request):
tweets, urls = main()
context = {
"tweets": tweets,
"urls": urls,
}
print(context)
return render(request, "feed/trends.html", context)
在我的模板中,我想同时打印趋势和网址的值。
这是我的模板文件
{% extends 'feed/base.html' %}
{% block content %}
<div class="row">
<div class="col-md-3"></div>
<div class="col-md-6">
<div class="thumbnail-center">
<font size="4">
<p>Trending Tweets</p>
</font>
</div>
{% for t,u in tweets,urls %}
{{ t }}{{ u }}<br>
{% endfor %}
</div>
<div class="col-md-3"></div>
</div>
{% endblock %}
但是当我运行服务器时,出现以下错误:
Exception Type: TemplateSyntaxError
Exception Value:
Could not parse the remainder: ',urls' from 'tweets,urls'
请帮助我如何迭代抛出两个列表?
您可以zip
在视图中使用 a来创建一个同时迭代列表的迭代器:
def twitter_trend(request):
tweets, urls = main()
context = {
'tweets_urls': zip(tweets, urls),
}
print(context)
return render(request, "feed/trends.html", context)
然后在模板中,我们可以迭代tweets_url
:
{% extends 'feed/base.html' %}
{% block content %}
<div class="row">
<div class="col-md-3"></div>
<div class="col-md-6">
<div class="thumbnail-center">
<font size="4">
<p>Trending Tweets</p>
</font>
</div>
{% for t, u in tweets_urls %}
{{ t }}{{ u }}<br>
{% endfor %}
</div>
<div class="col-md-3"></div>
</div>
{% endblock %}
zip 接受两个或更多流,并生成这些流的元组。例如:
>>> list(zip([1, 4, 2, 5], "ABCD"))
[(1, 'A'), (4, 'B'), (2, 'C'), (5, 'D')]
因此,我们创建元组,其中左边的项目是一个tweets
元素,右边的项目是一个urls
元素。
请注意,您必须确保秩序tweets
和urls
“比赛”:那我个tweets
元素‘与’给我个urls
元素。zip(..)
只是采用两个可迭代对象的顺序,它没有任何“魔法”来检查链接元素是否有意义。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句