Рубрики
Без рубрики

Метод Flask flash () – Как прошивать сообщения в Flask?

В этом уроке мы узнаем, как прошивать сообщения с помощью метода Flask flash ().

Автор оригинала: Pankaj Kumar.

В этом уроке мы узнаем, как прошивать сообщения с помощью метода Flask flash ().

Что значит мигать сообщением?

Для приложений с графическим интерфейсом всегда полезно давать обратную связь пользователю за его действия.

То есть, например, в форме колбы , если пользователь оставляет поле пустым, можно выдать ему сообщение об ошибке/информации, сообщающее, что поле требуется.

Графический интерфейс Python Tkinter framework использует сообщение или диалоговое окно для отображения сообщения , и на клиентском языке сценариев JavaScript это делается с помощью функции alert .

И в колбе у нас есть этот метод вспышки, чтобы сделать именно это.

Как работает вспышка вспышки?

Метод Flash flash показывает сообщения пользователям.

С помощью Flash мы можем создать флэш-сообщение в одном представлении колбы, а затем показать его в другом представлении, называемом “далее”, которое обычно является шаблонным представлением.

Типичным примером представления шаблона является:

@app.route('/template')
def blog():
    #codes...
    #codes...
    return render_template('template.html')

Следовательно, представление Flask создает флэш-сообщение в одном представлении, а затем передает его в представление next (вместе с запросом), которое отображает сообщение пользователю.

Синтаксис для Flash:

flash(message,category)

Здесь,

  • сообщение: Сообщение для отображения
  • категория: Необязательный параметр, который может быть установлен в “ошибка”, “информация” или “предупреждение”.”

Чтобы извлечь флэш-сообщение из сеанса, в котором оно хранится, и отобразить его в шаблоне, мы используем функцию get_flashed_messages () .

get_flashed_messages(with_categories, category_filter)

Здесь,

  • with_categories: Необязательный кортеж параметров для упоминания категории(ошибка/информация/предупреждение)
  • category_filter: Необязательный параметр для фильтрации и отображения только определенных сообщений

Простой пример, показывающий get_flashed_message() в файле шаблона:

{% with messages = get_flashed_messages() %}
   {% if messages %}
      {% for message in messages %}
         {{ message }}
      {% endfor %}
   {% endif %}
{% endwith %}

Практическое применение с помощью метода Flash flash()

Здесь мы создадим простое приложение Flask, которое мигает – вход успешен , если пользователь вводит правильный пароль.

1) Кодирование файла приложения колбы

Здесь мы покажем простую форму ввода пароля. Если пароль правильный, то мигните сообщением.

from flask import Flask,render_template,request,redirect,flash

app = Flask(__name__)

@app.route('/form')
def form():
    return render_template('form.html')

@app.route('/login', methods = ['POST', 'GET'])
def login():
    if request.method == 'GET':
        return "Login via the login Form"
    
    if request.method == 'POST':
        password = request.form['password']
        if password == '123':
            #The following flash message will be displayed on successful login
            flash('Login successful')
            return render_template('success.html')
        else:
            return redirect('/form')

app.run(host='localhost', port=5000)

Здесь success.html – это шаблон “следующий”, так как там появится сообщение.

Вот и все !! давайте теперь закодируем шаблоны

2) Кодирование шаблонов

В form.html будет:

password

И Success.html файл шаблона:

{% with messages = get_flashed_messages() %}
   {% if messages %}
      {% for message in messages %}
         {{ message }}
      {% endfor %}
   {% endif %}
{% endwith %}

User Authenticated

Обратите внимание, как мы использовали get_flashed_messages() здесь.

3) Реализация

Вот и все !! Давайте теперь запустим сервер и проверим веб-страницу

Хит “/форма” :

Форма

Введите 1234 и нажмите кнопку отправить

Авторизоваться

И вот оно, наше флэш-сообщение прямо на экране.

Вывод

Вот и все для этого урока, ребята!! Я надеюсь, что вы получили достаточно знаний, чтобы использовать метод Flash в своих веб-приложениях. Ознакомьтесь с нашей статьей о формах колб, чтобы узнать больше о формах

Увидимся в следующей статье !! Счастливого кодирования !!