Python 从app.py到html的For循环返回未知

Python 从app.py到html的For循环返回未知,python,for-loop,flask,Python,For Loop,Flask,我的app.py中有一些列表,我正在尝试用html显示它们,下面是我正在做的: search=response.json() 图书id=[] 标题=[] 作者=[] 缩略图=[] 对于搜索中的itm['items']: 图书id.附加(itm['id']) titles.append(itm['volumeInfo']['title']) authors.append(itm['volumeInfo']['authors']) 附加(itm['volumeInfo']['imageLinks']

我的app.py中有一些列表,我正在尝试用html显示它们,下面是我正在做的:

search=response.json()
图书id=[]
标题=[]
作者=[]
缩略图=[]
对于搜索中的itm['items']:
图书id.附加(itm['id'])
titles.append(itm['volumeInfo']['title'])
authors.append(itm['volumeInfo']['authors'])
附加(itm['volumeInfo']['imageLinks']['thumbnail'])
返回渲染模板(“search.html”,search={
“图书id”:图书id,
“头衔”:头衔,
“作者”:作者,
“缩略图”:缩略图
})
{%fori in search%}
{{search.title[i]}
{{search.author[i]}
{%endfor%}

Html不返回任何内容,并且在
img src
中显示unknown。有人知道我做错了什么吗?

当你呈现模板时,
搜索
是一个命令,所以当你在它上面循环时,你会得到它的键(
“book\u id”
“title”
“author”
“thumbnail”
),这些键在这些列表中没有索引的用处


您可能希望分别循环四个列表,例如
{%fori in search['book_id']%}

当您呈现模板时,
搜索
是一个dict,因此当您循环它时,您将得到它的键(
“book_id”
“title”
“author”
,以及
“缩略图”
),作为这些列表的索引是没有用的


您可能希望分别循环四个列表,例如
{%fori in search['book_id']%}

使用zip函数返回搜索dict中所有列表的n元组,然后对其进行迭代

{%forbook\u id,缩略图,title,author-in-zip(search.book\u id,search.缩略图,search.title,search.author)%}
{{title}}
{{作者}
{%endfor%}
还要记住将zip函数作为全局模板提供

@app.template\u global(name=“zip”)
def t_zip(*iterable):
返回拉链(*iterable)

使用zip函数返回搜索dict中所有列表的n元组,然后对其进行迭代

{%forbook\u id,缩略图,title,author-in-zip(search.book\u id,search.缩略图,search.title,search.author)%}
{{title}}
{{作者}
{%endfor%}
还要记住将zip函数作为全局模板提供

@app.template\u global(name=“zip”)
def t_zip(*iterable):
返回拉链(*iterable)

如果您想在html中调用它,我相信您需要一个字典列表。我会这样做:

search=response.json()
seek=搜索['items']
infobooks=[]
对于范围内的i(len(seek)):
append({“book_id”:seek[i]['id'],
“缩略图”:查找[i]['volumeInfo']['imageLinks']['thumbnail'],
“标题”:查找[i]['volumeInfo']['title'],
“作者”:查找[i]['volumeInfo']['authors']
})
{%用于infobooks%}
{{infobook['title']}
{{infobook['authors']}
{%endfor%}

请注意,我创建了一个名为
infobooks
的列表,该列表接收字典。

按照您希望在html中调用它的方式,我相信您需要一个字典列表。我会这样做:

search=response.json()
seek=搜索['items']
infobooks=[]
对于范围内的i(len(seek)):
append({“book_id”:seek[i]['id'],
“缩略图”:查找[i]['volumeInfo']['imageLinks']['thumbnail'],
“标题”:查找[i]['volumeInfo']['title'],
“作者”:查找[i]['volumeInfo']['authors']
})
{%用于infobooks%}
{{infobook['title']}
{{infobook['authors']}
{%endfor%}

请注意,我创建了一个名为
infobooks
的列表,该列表接收字典。

是否可以用这四个列表创建一个唯一的列表?我正在尝试,但没有成功。难道不可能用这四个列表创建一个唯一的列表吗?我正在努力,但没有成功。