我有一个功能,可以从数据集中选择匹配的数据,并将其作为dict返回。功能如下。
def Return_details(movie_name):
t = movie_details.loc[movie_details['title'].str.contains(movie_name), 'title']
imdb = movie_details.loc[movie_details['title'].str.contains(movie_name), 'imdb_score']
g = movie_details.loc[movie_details['title'].str.contains(movie_name), 'genre']
y = movie_details.loc[movie_details['title'].str.contains(movie_name), 'year']
p = movie_details.loc[movie_details['title'].str.contains(movie_name), 'poster']
try:
title = t.iat[0]
imdb_score = imdb.iat[0]
genre = g.iat[0]
year = y.iat[0]
link = p.iat[0]
except IndexError:
return{'None':'None'}
else:
return {'title':movie_name},{'poster':link},{'imdb_score':imdb_score},{'genre':genre},{'year':year}return movie_name,link,imdb_score,genre,year
然后在flask应用程序中,我创建了一个接受此字典的列表,并将其放在列表中。这是列表的代码
list_contains_details = []
for i in predict:
list_contains_details.extend(Return_details(i))
print(list_contains_details)
return render_template('index.html',data = list_contains_details)
内部index.html
<!DOCTYPE html>
<html >
<body>
<div>
{% for i in data %}
<p>{{ i.title }} </p><br>
{% endfor %}
</div>
</body>
</html>
问题是,仅打印标题出现在列表的最后,而标题的其余部分不打印。我也尝试过使用静态列表,但是它不起作用,这是它的代码。
data = [{'title':'toy story', 'year':'2018', 'title':'Jumanji','year':'2019'}]
return render_template('data.html',data=data)
data.html
<!DOCTYPE html>
<html >
<body>
<div>
{% for i in data %}
<p>{{ i.title }} </p><br>
{% endfor %}
</div>
</body>
</html>
答案 0 :(得分:0)
据我所知,此时您正在定义“数据”变量。数据中的项目应分开,数据= [{'title':'玩具总动员','year':'2018'},{'title':'Jumanji','year':'2019'}]。希望这会有所帮助!