Обработчик событий Python flask-app - PullRequest
0 голосов
/ 25 апреля 2018

В настоящее время я запускаю несколько сценариев Python для обработки некоторых данных, которые затем пересылаю в html-файл через инфраструктуру Flask.

Данные собираются из определенной папки в моем проекте. Я хотел бы добавить прослушиватель, который повторно запускает мои сценарии, если файлы изменяются в определенной папке данных. Я думаю, что могу управлять слушателем, но я действительно смущен тем, как я могу обновить информацию, передаваемую в html через приложение фляги.

например:

@app.route("/")
def chart():
    return render_template("chart.html",
    data1=data1, someOtherData=someOtherData)

Если слушатель реагирует, я хочу обновить переданную информацию (data1, someOtherData). Я попытался осмотреться, но не могу понять, как сделать эту работу.

1 Ответ

0 голосов
/ 25 апреля 2018

Вам необходимо проверить, не изменился ли файл.Вы можете сделать это с помощью цикла, который проверяет временную метку файла каждые x-секунд.

Или вызывать ее в функции, которая изменяет данные в вашей папке.

Или вы делаете цикл в Javascriptкто запускает функцию.

РЕДАКТИРОВАТЬ:

Вот пример из моего текущего проекта, как отрисовать шаблон с новыми данными:

prog.py

@app.route('/show_all_persons', methods=['GET'])
@login_required
def show_all_persons():
    all_persons_query = '''
    SELECT 
        *
    FROM 
        persons
    '''

    persons = sql_conn.query(all_persons_query)
    persons = [dict(p) for p in persons]

    return render_template('childs/show_all_persons.html', persons=persons)

person.html

<table class="table table-light table-hover sort_list">
<thead>
<tr>
    <th style="width: 10em;" scope="col">ID</th>
    <th style="width: 10em;" scope="col">Vorname</th>
    <th id="lastname" scope="col">Nachname</th>
</tr>
</thead>
<tbody class="table-hover">

{% for person in persons %}
<tr class="click" data-href="/show_person/{{ person.person_id }}">
    <td scope="row"><b>#{{ person.person_id }}</b></td>
    <td>{{ person.person_firstname }}</td>
    <td>{{ person.person_lastname }}</td>
</tr>

{% endfor %}

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