用于进ja,烧瓶中的循环

时间:2020-02-02 07:18:36

标签: python html flask jinja2

我有一个功能,可以从数据集中选择匹配的数据,并将其作为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>

1 个答案:

答案 0 :(得分:0)

据我所知,此时您正在定义“数据”变量。数据中的项目应分开,数据= [{'title':'玩具总动员','year':'2018'},{'title':'Jumanji','year':'2019'}]。希望这会有所帮助!

相关问题