Как отобразить новые значения списка, в шаблоне Flask и Jinja2, без перезагрузки страницы? - PullRequest
0 голосов
/ 06 октября 2019

У меня проблема с моим веб-приложением, созданным во Flask, и шаблоном jinja2. У меня проблемы с обновлением моих переменных без перезагрузки моей веб-страницы. Я хотел бы сделать следующее: у меня в Python есть список, в который каждый период времени добавляется новое значение (в этом тесте каждую секунду добавляется текущая дата). На веб-странице я хотел бы, чтобы этот список всегда отображался вместе с новыми значениями, которые будут добавлены, но без перезагрузки страницы.

Я делал попытки на разных языках (Javascript, AJAX,PHP), что касается скрипта обновления страницы, но, к сожалению, ничего. Я также видел других пользователей, у которых была такая же проблема, но с другими характеристиками, но, к сожалению, я не мог понять, как работает это обновление. Я попробовал что-то попроще вместо списка, но переменную, но ничего. И что же мне делать? Что я должен сделать, чтобы прийти к решению? Я оставляю вам код моего веб-приложения.

Это код Python, в котором я отправляю визуализацию страницы, и есть функция, которая добавляет меня на каждую секунду текущую дату, более того, она всегдаКаждую секунду обновляется переменная «i» (в качестве теста для одной переменной).

from flask import Blueprint, render_template
import time, threading

page_load_blue = Blueprint("page_load", __name__)

list = []
i = 0

@page_load_blue.route('/page_load', methods=["GET", "POST"])
def pagina_carica():
    newTime()
    global list
    global i
    return render_template("page_load.html", list=list, i=i)


def newTime():
    global list
    global i
    i += 1
    list.append(time.ctime())
    threading.Timer(1, newTime).start()

Это HTML-код с проверкой на Javascript, взятой из W3Shools и адаптированной к моим потребностям. В этом тесте «должен» отображать обновление переменной каждую секунду. (Очевидно, это не работает, но работает в случае, когда переменная будет обновлена ​​в функции Javascript, которая, к сожалению, мне не нужна таким образом).

{% extends "template_page_load.html" %}

{% block title %}LOAD{% endblock %}

{% block main %}

<div class="container">
  <div class="row">
    <div class="col">


    <p id="demo"></p>


    <script>
      var myVar = setInterval(myTimer ,1000);
      function myTimer() {
        document.getElementById("demo").innerHTML = {{ i }};
      }
    </script>

    </div>
  </div>
</div>

{% endblock %}

Спасибо за вашевнимание.

...