Flask 学习-65.消息闪现 flash

283 篇文章 58 订阅

前言

一个好的应用和用户界面都需要良好的反馈。如果用户得不到足够的反馈,那么应用 最终会被用户唾弃。
Flask 的闪现系统提供了一个良好的反馈方式。闪现系统的基 本工作方式是:在且只在下一个请求中访问上一个请求结束时记录的消息。

设置 flash()

flask提供了一个非常有用的flash()函数,它可以用来“闪现”需要提示给用户的消息,比如当用户登录成功后显示“欢迎回来!”。
在视图函数调用flash()函数,传入消息内容,flash()函数把消息存储在session中,我们需要在模板中使用全局函数get_flashed_messages()获取消息并将它显示出来。
flash是基于session, 所以必须要设置秘钥 secret_key

flash()函数源代码

  • message 消息内容
  • category 消息类别,可以不用传,默认缺省值"message"
def flash(message: str, category: str = "message") -> None:
    """Flashes a message to the next request.  In order to remove the
    flashed message from the session and to display it to the user,
    the template has to call :func:`get_flashed_messages`.

    .. versionchanged:: 0.3
       `category` p
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flask框架提供了闪现消息提示的功能,可以在请求之间传递消息。这些消息可以是成功或错误的消息,可以在下一个请求中显示给用户。闪现消息通常用于表单验证或用户登录后的欢迎消息等场景。 以下是一个简单的示例,演示如何使用闪现消息提示: ```python from flask import Flask, flash, redirect, render_template, request, url_for app = Flask(__name__) app.secret_key = 'some_secret_key' @app.route('/') def index(): return render_template('index.html') @app.route('/login', methods=['GET', 'POST']) def login(): if request.method == 'POST': username = request.form['username'] password = request.form['password'] if username == 'admin' and password == 'password': flash('登录成功!', 'success') return redirect(url_for('index')) else: flash('用户名或密码错误!', 'error') return render_template('login.html') if __name__ == '__main__': app.run(debug=True) ``` 在上面的示例中,我们首先导入了Flask框架和flash函数。然后,我们定义了一个应用程序,并设置了一个秘密密钥。接下来,我们定义了两个路由,一个用于显示主页,另一个用于处理登录请求。在登录路由中,我们首先检查请求的方法是否为POST,如果是,则获取用户名和密码。如果用户名和密码正确,则使用flash函数显示成功消息,并重定向到主页。否则,我们显示错误消息。 在HTML模板中,我们可以使用以下代码来显示闪现消息: ```html {% with messages = get_flashed_messages() %} {% if messages %} <ul class="flashes"> {% for message in messages %} <li class="{{ message[1] }}">{{ message[0] }}</li> {% endfor %} </ul> {% endif %} {% endwith %} ``` 在上面的代码中,我们首先使用get_flashed_messages函数获取所有闪现消息。然后,我们使用一个循环来遍历所有消息,并将它们显示为一个无序列表。每个消息都有一个类别,可以是success、error、warning或info。我们可以使用这些类别来为每个消息设置不同的样式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值