Flask-自动render_template列出或网址

时间:2019-10-24 11:44:54

标签: flask

我一直在尝试使用flask根据列表或网址/页面名称自动移动到另一个网址。这个想法是,任何人都可以扔出一个页面,将其添加到列表中,站点将每隔30秒左右继续移动到每个页面。

这是我的伪代码

from flask import Flask, request, render_template
import time

app = Flask(__name__)

list = ["1.html", "2.html"]

@app.route('/')
def index():
    for li in list:
       return render_template(li)
       time.sleep(1)

if __name__ == '__main__':
    app.run(debug=True)

我尝试了几种不同的方法,但实际上@ app.route只会运行一次。如果我在@ app.route外部运行循环,则尝试在端点上写。

有人建议采用其他方法吗?

谢谢

1 个答案:

答案 0 :(得分:0)

好了,解决了。使用一些全局变量并意识到该函数将不会更新其函数之外的变量。这将浏览网页列表,并在一段时间后移至每个网页。

from flask import Flask, request, render_template, redirect, url_for
import time

app = Flask(__name__)

list1 = ["1.html", "2.html", '3.html']

i = 0

@app.route('/')
def index():
    global i
    if i < len(list1):
        j = i
        i+=1
        return render_template(list1[j])
    elif (i == len(list1)):
        i = 0
        return render_template(list1[i])

if __name__ == '__main__':
    app.run(debug=True)

您还需要在每个html页面中添加以下内容

<meta http-equiv="refresh" content="3" >

这将强制刷新以运行该功能。因此,现在基本上我可以进行页面的幻灯片显示了,所有人们需要做的是将页面添加到目录中,将页面名称添加到列表(将是文本文件)中,然后将显示下一个页面互动。