Flask: показывать флеш-сообщения в алертбоксе

Я работал над флягой и наткнулся на вспышку. Он отображает сообщение на странице, если флэш-память была вызвана на стороне сервера. Однако я хотел бы отобразить содержимое get_flashed_messages() в окне предупреждения. Я попытался сделать функцию JS и передать {{message}}, но цикл печатает вызов, т.е. принимает вызов в виде строки.

{% with messages = get_flashed_messages() %}
{% if messages %}
 <ul class=flashes>
 {% for message in messages %}
  <li>{{ message }}</li>
 {% endfor %}
 </ul>
{% endif %}
{% endwith %}

Есть ли способ сделать это?


person mini.1601    schedule 07.11.2015    source источник
comment
Мне нужно вернуть окно оповещения. Фляга AFAIK может возвращать максимум только http-разметку. Мне нужно вызвать функцию JS, а не функцию python.   -  person mini.1601    schedule 07.11.2015


Ответы (1)


Вы можете создать переменную JS, содержащую сообщения

{% with messages = get_flashed_messages() %}
  {% if messages %}
    <script>
      var messages = {{ messages | safe }};
      for (var i=0; i<messages.length; i++) {
        alert(messages[i]);
      }
    </script>
  {% endif %}
{% endwith %}
person r-m-n    schedule 07.11.2015
comment
Именно то, что я искал. Я не думал об этом. Спасибо. - person mini.1601; 07.11.2015
comment
спасибо, но в этом коде есть небольшая проблема, нужно поставить {{ messages | safe }} in потому что для меня в jinja есть ошибка! - person alireza; 08.06.2019