Flask - Автоматически отображать шаблон в список или URL - PullRequest
0 голосов
/ 24 октября 2019

Я пытался использовать флягу для автоматического перехода к другому URL-адресу на основе списка или имен URL / страниц. Идея в том, что каждый может добавить страницу, добавить в список, и сайт будет продолжать перемещаться на каждую страницу каждые 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)

Iпробовал несколько разных способов, но эффективно @ app.route будет запускаться только один раз. Если я запускаю цикл за пределами @ app.route, я пытаюсь записать поверх конечной точки.

Любые предложения разные подходы?

Спасибо

1 Ответ

0 голосов
/ 26 октября 2019

Хорошо, решил это. Использование некоторых глобальных переменных и понимание того, что функция не будет обновлять переменные вне своей функции. Это позволит просмотреть список веб-страниц и перейти к каждой через определенный промежуток времени.

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

Это приведет к обновлению, запускающему функцию. Так что теперь, в принципе, у меня может быть слайд-шоу страниц, и все, что нужно сделать людям, это добавить страницу в каталог, добавить имя страницы в список (который будет текстовым файлом), и он покажет страницу следующегоИнтерактивный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...