【问题标题】:Flask - Auto render_template to list or urlsFlask - 自动渲染模板到列表或网址
【发布时间】:2019-10-24 11:44:54
【问题描述】:

我一直在尝试使用烧瓶根据列表或网址/页面名称自动移动到另一个网址。这个想法是任何人都可以放入一个页面,添加到列表中,并且该站点将继续每 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 之外运行循环,我正在尝试覆盖端点。

有什么不同的方法建议吗?

谢谢

【问题讨论】:

    标签: flask


    【解决方案1】:

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

    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" >
    

    这将强制刷新运行该函数。所以现在基本上我可以有页面的幻灯片放映,所有人需要做的就是在目录中添加页面,将页面名称添加到列表(这将是一个文本文件),它将显示下一个页面互动。

    【讨论】:

      猜你喜欢
      • 2015-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-25
      • 2018-09-28
      • 1970-01-01
      相关资源
      最近更新 更多