Flask flush 闪现
闪现
要用必须导入 flash , get_flashed_messages
flash 用于存闪现的值。他有两个参数,1 messsage,用来存储信息 2 category ,用于给信息分类,该参数可以不传,不传就是分类为 ”messsage“
get_flashed_messages 用是用来取闪现的值,他也有两个参数:1 with_category,拿到的结果是否需要带上分类名称,2 category_filter 是用来过滤我要取哪个分类下的信息。当然这个两个都是可选的
注意点:
1 设置flash,必须设置 app.secret_key="随便",因为flash是基于 session 的。
2 闪现的值,不同的请求中只能取一次,当然在同一请求内是可以获取多次的。
# 首先要导入flash 和 get_flashed_messages
from flask import Flask, flash, get_flashed_messages
app = Flask(__name__)
# app.session_interface
app.secret_key = "sdasd"
# 什么闪现:就像session一样,也是一个页面设置,另一个页面使用,我不管你在哪个页面调用的
# 只要调用一次,就清空了,
# 闪现的作用,一般用信息处理。假设用户,a页面做操作,产生了信息。我希望在b页面内获取。
# 但是我不知道用户在什么时候,访问b页面,但是只要用户一旦访问页面就把信息显示出来。
# 同一页面,同次请求是可以拿多次的
@app.route("/")
def index():
# 产生信息,message设置消息的,category给消息分类,如果不传默写用”message“
flash("你错过了我")
flash(message="你再次错过我", category="渣男")
return "index"
@app.route("/login/")
def login():
# (with_categories=True,消息是否要带上分类信息,category_filter=["渣男"]对消息进行过滤,取指定的分类消息
print(get_flashed_messages(with_categories=True, category_filter=["渣男"]))
print(get_flashed_messages())
return "login"
@app.route("/test/")
def test():
print(get_flashed_messages())
return "test"
if __name__ == '__main__':
app.run()
闪现有什么作用呢?
比如:假设在A页面做个操作,但该操作失败了,要跳转到B页面并显示这些错误信息
from flask import Flask,flash,get_flashed_messages,request,redirect
app = Flask(__name__)
app.debug = True
app.secret_key="1234"
@app.route("/index")
def index():
# get请求用request.args.get, v是接受参数的变量
# 浏览器请求:
val = request.args.get('v')
if val =="body":
return "hello World, guys"
# 如果请求参数不是body,则跳转到错误页面,需要将错误信息flash,也就是设置错误值到某个地方
# A.flash不分类,直接设置值
flash("前端输入参数错误")
# B.flash还可以对错误信息,进行分类
flash("前端输入参数错误", category="x1")
return redirect("/error")
@app.route("/error")
def error():
'''
显示错误信息
'''
# 跳转到error页面后,请求时获取错误信息
# A.flash没有分类时
# data = get_flashed_messages() # 获取的就是flash的值
# B. 对于有分类的,取值时可以通过 category_filter 根据分类取错误信息
data = get_flashed_messages(category_filter=['x1'])
# 可能有很多的错误信息,也可以按照索引的方式取出错误值
if data:
msg = data[0]
else:
msg = "..."
return "错误信息:%s" %(msg)
if __name__=="__main__":
app.run()
闪现是怎么实现的呢?
其实,它就是通过 session 做的,先把数据存在 session 里,数据如果在 session 里,只要不删,就永远在。
然后,如果值被拿走,就会通过 session.pop()的方式给拿走。
所以,就不用担心数据错乱。因为每个用户都会有自己的一个 session,基于 session 就会把数据隔离开了。
闪现的应用:
对临时数据操作,如:显示错误信息
Flask flush 闪现的更多相关文章
- Flask消息闪现
目录 Flask消息闪现 简单的例子 闪现消息的类别 过滤闪现消息 Message Flashing 参考 Flask消息闪现 一个好的应用和用户界面都需要良好的反馈.如果用户得不到足够的反馈,那么应 ...
- Flask Flash闪现
Flash介绍以及工作方式 flash中添加消息 取出flash中的消息 Flash介绍以及工作方式 - 介绍: flash :闪现 一个好的应用和用户界面都需要良好的反馈. 如果用户得不到足够的反馈 ...
- Flask的闪现(message) 请求扩展 中间件 蓝图
补充:一个编程思路 需求:做一些邮件短信微信的消息通知,比如账单告警之类的:比如数据库操作,数据库种类繁多:缓存的选择比如redis/memcache,诸如此类需要进行选择配置,如果我们单纯的用函数去 ...
- 19,flask消息闪现-flash
Flash消息 请求完成后给用户的提醒消息,flask的核心特性, flash函数实现效果 视图函数中调用flash()方法 html中要使用get_flashed_messages() 后端代码: ...
- Flask -- 消息闪现、错误处理
flash 可以在任何需要的地方添加,类似于print from flask import flash @app.route('/') def index(): flash('You are in h ...
- Flask form前后端交互消息闪现
模拟场景如果当用户注册时输入错误而由于form表单是同步提的交跳转到另一个网页时提示注册失败这时用户还需返回注册页面重新填写大大降低了客户体验,消息闪现能伪装成异步(实际还是同步)就是自己提交给自己然 ...
- 第二篇 Flask基础篇之(闪现,蓝图,请求扩展,中间件)
本篇主要内容: 闪现 请求扩展 中间件 蓝图 写装饰器,常用 functools模块,帮助设置函数的元信息 import functools def wrapper(func): @functools ...
- flask之请求与响应、闪现(阅后即焚)、请求扩展(before,after)、中间件、LOCAL对象、偏函数、
目录 1.flask请求与响应 2.闪现 3.请求扩展 4.中间件 5.LOCAL对象 6.偏函数 templates 1.flask请求与响应 from flask import Flask,req ...
- Flask Web开发从入门到放弃(一)
第1章 章节一 01 内容概要 02 内容回顾 03 路飞学城之加入购物车 04 路飞学城之结算 05 路飞学城之立即支付 06 路飞学城之后续计划 07 Flask框架简介和快速使用 08 FLas ...
随机推荐
- React-Router 4 两个常用路由变量
讲真我个人不太喜欢4.x版本,虽然作者自信动态路由的形式符合React组件化的哲学,但是路由和一般组件耦合太深,而且后期组件分片也麻烦,以后需要重构的话怕是会一番折腾.同学公司用的还是3.x版本. 不 ...
- LSTM的备胎,用卷积处理时间序列——TCN与因果卷积(理论+Python实践)
什么是TCN TCN全称Temporal Convolutional Network,时序卷积网络,是在2018年提出的一个卷积模型,但是可以用来处理时间序列. 卷积如何处理时间序列 时间序列预测,最 ...
- POJ3903 Stock Exchange LIS最长上升子序列
POJ3903 Stock Exchange #include <iostream> #include <cstdio> #include <vector> #in ...
- oracle分析函数Rank, Dense_rank, row_number
http://www.cnblogs.com/wuyisky/archive/2010/02/24/oracle_rank.html 目录=============================== ...
- 苏浪浪 201771010120《面向对象程序设计(java)》第八周学习总结
1.实验目的与要求 (1) 掌握接口定义方法: (2) 掌握实现接口类的定义要求: (3) 掌握实现了接口类的使用要求: (4) 掌握程序回调设计模式: (5) 掌握Comparator接口用法: ( ...
- Web-Security-Learning
Web Security sql注入 MySql MySQL False 注入及技巧总结 MySQL 注入攻击与防御 sql注入学习总结 SQL注入防御与绕过的几种姿势 MySQL偏门技巧 mysql ...
- 接口参数校验(不使用hibernate-validator,规避大量if else)
引言 编写接口时,常用的参数校验使用hibernate-validator注解+@@Validated注解进行参数校验.当遇到一些特殊场景或需求,需要自己对参数进行手动校验时,会出现以下问题: 不可避 ...
- Java程序员的两项通用能力
工作这几年来,经历了很多.从小白到中级(手机里有一款叫中国象棋的游戏,里面给对弈中电脑水平分为小白.菜鸟.新手.入门.初级.中级.高级.大师.特级大师,编程我暂且按照这样来区分). 学校教给我的是从小 ...
- Javascript输入输出语句
方法 说明 归属 alert(msg) 浏览器弹出警示框 浏览器 console.log(msg) 浏览器控制台打印输出信息 浏览器 prompt(info) 浏览器弹出输入框,用户可以输入 浏览器 ...
- eatwhatApp开发实战(三)
在实战二中我们在eatwhatApp上增加了“添加店铺的功能”.接下来,我们来将添加的店铺显示出来,这里我们用到控件--ListView. 先上演示图: 首先,我们先设置布局: <Relativ ...