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 ...
随机推荐
- java触发器的学习
public class OpenVirtualService { public void open(){ //虚机开通 //业务逻辑 ...
- SMBMS项目-准备工作
项目搭建准备工作 1.基础准备工作 搭建一-个maven web项目 配置Tomcat 测试项目是否能够跑起来 导入项目中会遇到的jar包 jsp,Servlet,mysq|驱动, jstl, sta ...
- 04 返回静态文件的函数web框架
04 返回静态文件的函数web框架 服务器server端python程序(函数版): import socket server = socket.socket() server.bind((" ...
- mysql小白系列_13 Online DDL
Online DDL: 一.FIC之前的添加删除二级索引: 1.首先创建临时表,定义目标新表的选项和索引 2.逐行拷贝数据到临时表 3.插入行时更新索引信息 4.数据全部被拷贝到新表后,删除旧表,re ...
- poj1486二分匹配 待填坑
Sorting Slides Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 4777 Accepted: 1867 De ...
- POJ3436
题目链接:http://poj.org/problem?id=3436 题目大意: 一台电脑可以分成P个部分,在生产过程中,半成品电脑有的部分已经完成(记为1),而有的部分还没有完成(记为0).电脑生 ...
- 一文讲透Modbus协议
前言 Modbus是一种串行通讯协议,是Modicon公司(现在的施耐德电气 Schneider Electric) 于1979年为使用可编程逻辑控制器(PLC)通信而发表.Modbus已经成为工业领 ...
- 手机端页面访问PC页面自动跳手机端代码
<script> var mobileAgent = new Array("iphone", "ipod", "ipad", & ...
- 重磅!阿里P8费心整理Netty实战+指南+项目白皮书PDF,总计1.08G
前言 Netty是一款用于快速开发高性能的网络应用程序的Java框架.它封装了网络编程的复杂性,使网络编程和Web技术的最新进展能够被比以往更广泛的开发人员接触到. Netty不只是一个接口和类的集合 ...
- [批处理教程之Git]001.Git 常用命令大全
基本技巧 1.安装后的第一步 安装git后,第一件事你需要设置你的名字和邮箱,因为每次提交都需要这些信息. $ git config --global user.name "Some One ...