Flask: автоматическое обновление таблицы sh HTML с использованием jQuery - проблема рекурсии navbar - PullRequest
0 голосов
/ 09 апреля 2020

Я использовал Обновлять и отображать значение из Flask периодически и Flask + AJAX + Jquery + JINJA для динамического обновления HTML Table для обновления полей в моей таблице каждый несколько секунд. Сама панель навигации вызывает у меня головную боль, так как она также вставляется после обновления таблицы. Код:

база. html:

{% extends 'bootstrap/base.html' %}

{% block scripts %}
<script type="text/javascript">function refreshTable()  {  
    $.get("/foo", "", 
        function(data) {
            $('#table_1').html(data)
            console.log(data); 
        }, "html") };
window.setInterval(refreshTable, 3000)</script>
{% endblock %}

{% block title %}
    {% if title %}{{ title }} - try {% else %}{{ "error" }}{% endif %}
{% endblock %}

{% block navbar %} ... {% endblock %}

индекс. html:

{% extends "base.html" %}
{% import 'bootstrap/wtf.html' as wtf %}


{% block content %}
    <div class="container">
    <div id="table_1" class="container">
        <table class="table" style="width: 100%"> 
        <tbody><tr> <td>{{ d.one}}</td> <td>{{ d.two }}</td> <td>{{ d.time }}</td> </tr> </tbody>
    </table>
    </div>

{% with messages = get_flashed_messages(with_categories=true) %} {% if messages %} ...
    {% block app_content %}{% endblock %}
{% endblock %}

rout.py:

## index page   
@app.route('/')
@app.route('/index')
@login_required
def index(messages=None):
    DATA = {"one": 1, "time": datetime.now()}
    return render_template('index.html', d = DATA)


@app.route('/foo', methods= ['GET'])
@login_required
def foo():
    DATA = {"one": 2, "time": datetime.now()}
    return render_template('index.html',  d = DATA)

, очевидно, когда исполняется render_template('index.html', d = DATA), я получаю вторую панель навигации ниже моего первого, и вскоре после этого появляется ошибка рекурсии. Как лучше избегать перекрашивания навигационной панели?

...