如何在没有js的情况下在Flask中获取不同的图像?

时间:2018-01-29 09:43:55

标签: python html flask

在我的views.py中,我有这个:

@app.route("/rnd", methods=["GET"])
def get_random_img():
    image = random.choice(images)
    full_path = "static/img/b/" + image
    return send_file(full_path)

在我的index.html中,我有这个:

<main class="row">
    <div><img src="/rnd" class="responsive-img"></div>
    <div><img src="/rnd" class="responsive-img"></div>
    <div><img src="/rnd" class="responsive-img"></div>
    <div><img src="/rnd" class="responsive-img"></div>
    <div><img src="/rnd" class="responsive-img"></div>

我添加了一个js InfinityScroll。每次用户向下滚动时,新的<div><img src="/rnd" class="responsive-img"></div>都会附加到该网站。一切都在这里工作。但是有一个大问题,页面上的每个图像都是同一个?有没有机会解决这个问题而不用js触及前端?在我看来,我在robohash.org看到了类似的技术,因为不需要js。我知道URL-Structure与我的不同,但也许有人有想法?

1 个答案:

答案 0 :(得分:0)

尝试为您的图片src绑定一个rand网址,例如

@app.route("/rnd/<rand_num:int>", methods=["GET"])
def rnd():
    ...
    enter code here

然后按以下方式修改模板:

<div><img src="url_for('rnd')" class="responsive-img"></div>

如果您可以将所有演示代码放在这里,也许我可以改进答案!