Flash介绍以及工作方式

- 介绍:

flash :闪现
一个好的应用和用户界面都需要良好的反馈。
如果用户得不到足够的反馈,那么应用 最终会被用户唾弃。
Flask 的闪现系统提供了一个良好的反馈方式。

- 工作方式:

基本工作方式是:

在且只在下一个请求中访问上一个请求结束时记录的消息。

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

flash中添加消息

- flash()

  - 该函数是将需要消息存入flash等待下次请求进来时的获取

  - 在后台视图中想要使用 flash需要导入:

from Flask import flash

  - flash() 中的两个参数:

    - message:

      - 添加到flash中的数据

    - category:

      - 消息的类别,默认为 message

    

  - flash 源码:

def flash(message, category='message'):
# 获取session中的 "_flashes" 的列表,若没有赋值为空列表
flashes = session.get('_flashes', [])
# 将需要添加的message 与category组成元组放入列表flashes
flashes.append((category, message))
# 将flashes列表添加到session中
session['_flashes'] = flashes
# 当响应时,将该session添加到用户浏览器
message_flashed.send(current_app._get_current_object(),
message=message, category=category)

取出flash中的消息

- get_flashed_messages()

  - 获取存在flash中的消息,并且删除flash中的这个消息;

  - 在后台视图中想要使用 flash需要导入

from flask import get_flashed_messages

  - 母板中直接调用即可;

{% with messages = get_flashed_messages() %}
{{ messages }}
{% endwith %}

- 被取到后,flash中的数据将被 pop掉

- 源码:

def get_flashed_messages(with_categories=False, category_filter=[]):
# 第一次请求进来时,去获取flashes列表,但是因为没有加入所以为空列表
flashes = _request_ctx_stack.top.flashes
if flashes is None:
_request_ctx_stack.top.flashes = flashes = session.pop('_flashes') \
if '_flashes' in session else []
if category_filter:
flashes = list(filter(lambda f: f[0] in category_filter, flashes))
if not with_categories:
return [x[1] for x in flashes]
return flashes

Flask Flash闪现的更多相关文章

  1. Flask消息闪现

    目录 Flask消息闪现 简单的例子 闪现消息的类别 过滤闪现消息 Message Flashing 参考 Flask消息闪现 一个好的应用和用户界面都需要良好的反馈.如果用户得不到足够的反馈,那么应 ...

  2. Flask的闪现(message) 请求扩展 中间件 蓝图

    补充:一个编程思路 需求:做一些邮件短信微信的消息通知,比如账单告警之类的:比如数据库操作,数据库种类繁多:缓存的选择比如redis/memcache,诸如此类需要进行选择配置,如果我们单纯的用函数去 ...

  3. Flask flush 闪现

    闪现 要用必须导入 flash , get_flashed_messages flash 用于存闪现的值.他有两个参数,1 messsage,用来存储信息 2 category ,用于给信息分类,该参 ...

  4. 19,flask消息闪现-flash

    Flash消息 请求完成后给用户的提醒消息,flask的核心特性, flash函数实现效果 视图函数中调用flash()方法 html中要使用get_flashed_messages() 后端代码: ...

  5. flask 之cbv ,flash闪现,Flask_Session,WTForms - MoudelForm

    1.CBV : from flask import views  class LoginView(views.MethodView):  def get(self):   return     def ...

  6. Flask -- 消息闪现、错误处理

    flash 可以在任何需要的地方添加,类似于print from flask import flash @app.route('/') def index(): flash('You are in h ...

  7. flask flash消息

    请求完成,让用户知道状态发生了变化,可以使用flash确认消息 示例: xx.py from flask import Flask,render_template,request,redirect,u ...

  8. 【Flask】学习笔记(一)入门

    Flask 入门基础 Flask是一个轻量级的后台框架,用Flask作为Web框架的公司有Netfix,Reddit等,国内豆瓣,果壳等.使用flask的公司列表.Flask 有主要的两个依赖,一个是 ...

  9. Flask框架flash消息闪现学习与优化符合闪现之名

    Flask的flash 第一次知道Flask有flash这个功能时,听这名字就觉得高端,消息闪现-是跳刀blink闪烁躲技能的top10操作吗?可结果让我好失望,哪里有什么闪现的效果,不过是平常的消息 ...

随机推荐

  1. 紫书 习题 8-25 UVa 11175 (结论证明)(配图)

    看了这篇博客https://blog.csdn.net/u013520118/article/details/48032599 但是这篇里面没有写结论的证明, 我来证明一下. 首先结论是对于E图而言, ...

  2. 紫书 习题8-18 UVa 11536 (扫描法)

    这道题貌似可以用滑动窗口或者单调栈做, 但是我都没有用到. 这道题要求连续子序列中和乘上最小值最大, 那么我们就可以求出每一个元素, 以它为最小值的的最大区间的值, 然后取max就ok了.那么怎么求呢 ...

  3. vps上运行serv-u的问题

    为了给产品环境建个测试站,今天特意申请一个vps来做开发用,但运行了Serv-U的ServUDaemon.exe后始终提示: 响应: 530 User czhan cannot log in. 很无语 ...

  4. POJ——T3259 Wormholes

    http://poj.org/problem?id=3259 Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 50692   ...

  5. python json及mysql——读取json文件存sql、数据库日期类型转换、终端操纵mysql及python codecs读取大文件问题

    preface: 近期帮师兄处理json文件,须要读到数据库里面,以备其兴许从数据库读取数据.数据是关于yelp站点里面的: https://github.com/Yelp/dataset-examp ...

  6. css实现上下左右布局

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. hpuoj--校赛--爬楼梯(模拟)

    问题 E: 感恩节KK专场--爬楼梯 时间限制: 1 Sec  内存限制: 1000 MB 提交: 382  解决: 89 [提交][状态][讨论版] 题目描述 来机房比赛的时候大家都会爬楼梯,但是每 ...

  8. SPFA的两种优化

    SPFA是可以优化的,这个大家都是晓得的吧. 下面介绍两种SPFA的神奇优化(我只代码实现了的一种) SLF:Small Label First策略,设要加入的节点是j,队首元素为i,若dist(j) ...

  9. 《剑指offer》跳台阶

    一.题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 二.输入描述 输入n级台阶 三.输出描述 输出总有多少种不同跳法 四.牛客网提供的框架 cla ...

  10. exsi从磁盘中加载虚拟机

    e