文章目录

  • 一、消息闪现
  • 二、闪现消息的类别
  • 三、过滤闪现消息

一、消息闪现

Flask 通过闪现系统来提供了一个简单易用的反馈方式。闪现系统的基本工作原理是:在请求结束时记录一个消息,提供且只提供给下一个请求使用

比如有这么个需求:A页面出了错后跳转到B页面,并在B页面展示A页面的错误信息。这个时候,就可以通过消息闪现将错误信息传递给B页面。

注意!!!浏览器会限制 cookie 的大小,有时候网络服务器也会。这样如果消息比会话 cookie 大的话,那么会导致消息闪现静默失败。

flash()用于闪现(可以理解为发送)一个消息。在模板中,使用 get_flashed_messages() 来获取消息。

举例说明:

  • 先看后端:

    from flask import Flask, flash, redirect, render_template, \request, url_forapp = Flask(__name__)
    app.secret_key = b'_5#y2L"F4Q8z\n\xec]/'@app.route('/')
    def index():return render_template('index.html')@app.route('/login', methods=['GET', 'POST'])
    def login():error = Noneif request.method == 'POST':if request.form['username'] != 'admin' or \request.form['password'] != 'secret':error = '无效凭证'else:flash('您已成功登录')  # 闪现了一个消息return redirect(url_for('index'))return render_template('login.html', error=error)
    
  • 下面是实现闪现的 layout.html 模板:

    <!doctype html>
    <title>My Application</title>
    {# 获取消息 #}
    {% with messages = get_flashed_messages() %}{% if messages %}<ul class=flashes>{% for message in messages %}<li>{{ message }}</li>{% endfor %}</ul>{% endif %}
    {% endwith %}
    {% block body %}{% endblock %}
    

二、闪现消息的类别

闪现消息还可以指定类别,如果没有指定,那么缺省的类别为 'message' 。不同的类别可以给用户提供更好的反馈。例如错误消息可以使用红色背景。

使用 flash()函数可以指定消息的类别:

flash('消息内容', 'error')

get_flashed_messages()函数也应当返回类别,显示消息的循环也要略作改变:

{# 注意 get_flashed_messages() 的参数 #}
{% with messages = get_flashed_messages(with_categories=true) %}{% if messages %}<ul class=flashes>{% for category, message in messages %}{# 消息类别被用作了 class 属性的值 #}<li class="{{ category }}">{{ message }}</li>{% endfor %}</ul>{% endif %}
{% endwith %}

消息类别可以是任何字符,但是推荐使用以下的值:'message’表示任何类型的消息,'error’表示错误,'info’表示信息消息,'warning’表示警告。

三、过滤闪现消息

你可以视情况通过传递一个类别列表来过滤 get_flashed_messages()的结果。这个功能有助于在不同位置显示不同类别的消息。

{# 只获取 error 类型的消息,其他忽略 #}
{% with errors = get_flashed_messages(category_filter=["error"]) %}
{% if errors %}
<div class="alert-message block-message error"><a class="close" href="#">×</a><ul>{%- for msg in errors %}<li>{{ msg }}</li>{% endfor -%}</ul>
</div>
{% endif %}
{% endwith %}

flask web 框架——消息闪现相关推荐

  1. Flask框架——消息闪现

    目录 使用消息闪现 消息闪现分类 过滤闪现消息 上篇文章我们学习了Flask框架--flask-caching缓存,这篇文章我们来学习Flask框架--flash消息闪现. 良好的web应用程序中需要 ...

  2. API接口开发其实特简单,Python Flask Web 框架教程来了

    大家好,日常工作中,无论你是数据工程师.数据挖掘工程师,甚至数据分析人员,都不可避免的与他人进行数据交互,API接口提供数据是最常见的形式. 今天我给大家分享 Python Flask Web 框架教 ...

  3. Flask(十二)——消息闪现

    一个基于GUI好的应用程序需要向用户提供交互的反馈信息. 例如,桌面应用程序使用对话框或消息框,JavaScript使用 alert() 函数用于类似的目的. 在Flask Web应用程序中生成这样的 ...

  4. python Flask web 框架 (十七)

    Flask 0.Flask简介 Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收ht ...

  5. 比我的脸还干的gan货——Python Flask Web 框架入门

    Flask是一个轻量级的基于Python的web框架. 本文适合有一定HTML.Python.网络基础的同学阅读. 1. 简介 这份文档中的代码使用 Python 3 运行. 是的,所以读者需要自己在 ...

  6. flask模板应用-消息闪现(flash()) --

    消息闪现 flask提供了一个非常有用的flash()函数,它可以用来"闪现"需要提示给用户的消息,比如当用户登录成功后显示"欢迎回来!".在视图函数调用fla ...

  7. Python Flask Web框架教程 1 Hellow, World!

    原文 Installing Python 如果你的计算机上没有安装Python,请立即安装.如果你的操作系统没有为你提供Python包,你可以从Python官方网站下载安装程序.如果你将Microso ...

  8. Python Flask Web 框架入门

    人生苦短 我用python 这期非常非常干货!!!

  9. 比入赘还简单的——Python Flask Web 框架入门

    嗨害大家好鸭!我是小熊猫

最新文章

  1. Flink 1.3.2 Standalone模式安装
  2. re_path 的 ?P
  3. python自动化任务_用Python实现真实世界任务的自动化
  4. elastic search java_elasticsearch学习四、JAVA调用
  5. from 下拉框多个值提交_Git提交规范
  6. 一款世界上最快的固态硬盘
  7. QT5新建工程错误-无法打开源文件QtWidgets/QApplication
  8. IDE警告信息不应该被忽略
  9. MS SQL入门基础:数据库 统计函数
  10. 拓端tecdat|Python支持向量回归SVR拟合、预测回归数据和可视化准确性检查实例
  11. python 之selectors 实现文件上传下载
  12. 语音库构建_推动数据采用,以通过语音接口构建更好的产品
  13. heidisql与 MySQL区别,heidisql怎么使用 MySQL可视化工具heidisql安装使用教程
  14. 计算机单位mb和m大小一样吗,MB和M哪个容量大?
  15. python读文件的方法open,file,with open
  16. 吉林大学考研计算机系分数线,吉林大学考研计算机分数线相关交流问答贴 小木虫论坛-学术科研互动平台...
  17. MALTAB中 imshow函数出错
  18. Html5 生成个玫瑰线图案
  19. 兰州大学信息与计算机科学硕,兰州大学信息科学与工程学院
  20. Jsp中有哪些内置对象?作用分别是什么?

热门文章

  1. swift4--复制删除和移动文件
  2. 8年Java程序员成功复习进阿里,感慨:梦想的动力足以抵去压力,直播java技术选型
  3. 女朋友教务系统抢课老抢不上怎么办,写个代码解决这个问题
  4. Android 圆圈进度
  5. 微信开放平台申请移动应用时如何获取已经安装的第三方app的应用签名
  6. ZigBee的基本概念
  7. Management Accounting for Business Decisions读书笔记
  8. 密钥安全性讨论之密钥分层管理结构
  9. python 压测工具_流量压测工具 | 亚马逊AWS官方博客
  10. 山东大学软件学院项目实训-创新实训-网络安全靶场实验平台(五)