Я использовал Обновлять и отображать значение из 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)
, я получаю вторую панель навигации ниже моего первого, и вскоре после этого появляется ошибка рекурсии. Как лучше избегать перекрашивания навигационной панели?