geekdoc-python-zh/docs/askpython/flask-flash-method.md

4.6 KiB
Raw Permalink Blame History

Flask flash()方法——如何在 Flask 中刷新消息?

原文:https://www.askpython.com/python-modules/flask/flask-flash-method

在本教程中,我们将学习如何使用 Flask flash()方法刷新消息。

闪现消息是什么意思?

GUI 应用程序为用户的操作提供反馈总是好的。

也就是说,例如,在 Flask form 中,如果用户将某个字段留空,则给他一个错误/信息消息,告诉他该字段是必填的。

Python Tkinter GUI 框架使用 消息对话框来显示消息**、**,在客户端脚本语言 JavaScript 中,使用 alert 函数来完成。

在 Flask 中,我们有这个 flash 方法可以做到这一点。

烧瓶闪光灯是如何工作的?

Flask flash 方法向用户显示消息。

使用 flash我们可以在一个 Flask 视图中创建一个 Flash 消息然后在另一个视图中显示它这个视图叫做“next”通常是一个模板视图。

模板视图的典型例子是:

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

因此Flask 视图在一个视图中创建一个 Flash 消息,然后将其传递给下一个视图(和请求一起),后者向用户显示该消息。

Flash 的语法:

flash(message,category)

这里,

  • **消息:**要显示的消息
  • **类别:**可选参数,可以设置为“错误”、“信息”、“警告”

为了从会话中提取存储的 flash 消息,并在模板上显示它,我们使用了**get _ flash _ messages()**函数。

get_flashed_messages(with_categories, category_filter)

这里,

  • with_categories: 一个可选的参数元组,用来提及类别(错误/信息/警告)
  • category_filter: 可选参数,只过滤和显示特定的消息

一个简单的例子显示了模板文件中的get _ flash _ message():

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

动手用烧瓶闪光()方法

这里我们将创建一个简单的 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 将是:

<form action="/login" method = "POST">
   <p>password <input type = "text" name = "password" /></p>
   <p><input type = "submit" value = "Submit" /></p>
</form>

和 Success.html 模板文件:

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

<h2>User Authenticated</h2>

注意我们在这里是如何使用**get _ flash _ messages()**的。

3)实施

就是这样!!让我们现在启动服务器并检查我们的网页

点击**"/表格"**:

Form

Form

输入 1234 并点击提交

Login

Login

这就是我们的 Flash 信息,就在屏幕上。

结论

本教程到此为止,各位!!我希望您获得了足够的知识,可以在您的 web 应用程序中使用 Flash 方法。一定要看看我们的 Flask Forms 文章,以了解更多关于表单的信息

下一篇文章再见!!编码快乐!!