如何在Flask中显示来自API的多个图像

时间:2019-05-03 02:07:40

标签: python api flask

我正在使用Fortnite API,更具体地说是Python package来编写Flask Web服务器。我想检索商店图像并将其显示在我的Flask Web服务器上。请注意,我是Python和Flask的新手。

我尝试使用@app.route("/shop")并进行for循环来获取图片,然后返回return item.information,这应该给了我所有与图像的链接(链接看起来像this )并打印出来。我想将它们显示为图像。

这是我尝试过的方法,我知道它没有将它们显示为图像,但是我真的很新。奇怪的是,它甚至没有返回所有链接。

from flask import Flask
from FortniteAPI import Shop

app = Flask(__name__)

@app.route("/shop")
def shop():
    shop = Shop()
    items = shop.get_items()
    for item in items:
        return item.information

我希望输出显示商店中每件商品的图像,但是它只打印一个链接而没有图像。

1 个答案:

答案 0 :(得分:1)

函数只能执行一次return

所以您可以退货

items = shop.get_items()
return items

或者您可以使用information创建新列表并返回此列表

items = shop.get_items()
info = [x.information for x in items]
return info

要显示为图像,您必须使用HTML模板和render_template()

from flask import Flask, render_template

items = shop.get_items()
info = [x.information for x in items]

return render_template('all_images.html', links=info)

'all_images.html'

{% for url in links %}
<img src="{{ url }}"/>
{% endfor %}

或使用items

from flask import Flask, render_template

items = shop.get_items()

return render_template('all_images.html', links=items)

'all_images.html'

{% for url in links %}
<img src="{{ url.information }}"/>
{% endfor %}

编辑:它并不流行,但您也可以直接在函数中生成HTML

items = shop.get_items()

html = ''

for x in items:
    html += '<img src="{}"/>'.format(x.information)

return html