python web开发-flask中消息闪现flash的应用

Flash中的消息闪现,在官方的解释是用来给用户做出反馈。不过实际上这个功能只是一个记录消息的方法,在某一个请求中记录消息,在下一个请求中获取消息,然后做相应的处理,也就是说flask只存在于两个相邻的请求中“闪现”,第三次请求就不存在这个flash了。

下面我们用一个例子来说明一个是如何“闪”的。

首先引入flash和get_flashed_message方法

from flask import Flask,url_for,render_template,request,make_response,session, \

flash,get_flashed_messages

然后我们定义两个方法,一个用于记录flash,一个用于显示flash。

@app.route("/addflash")
def addFlash():
    flash("bling bling")
    return "added a flash"

@app.route("/getFlash/")
def getFlash():
    msgs = get_flashed_messages()
    msgStr = ""
    for msg in msgs:
        msgStr += msg+","
    return msgStr

然后我们运行程序,先访问/addflash这个地址,效果如下:

按代码的逻辑,此时应该是记录了一个bling bling的flash,然后我们在/getFlash中获取这个flash。

可以看到,我们获取到了bling bling这个flash.按上面所说,这个flash只存在于两次相临的请求中,那就是说,如果我们刷新一个/getFlash,重新发起一个请求的时候,bling bling这个flash应该是获取不到,下面我们刷新页面来做一下验证,刷新后效果如下:

页面一片空白,说明bling bling这个flash的确是没有被本次请求获取到。

对于flash还有一个type的参数,可以用来处理不同类型的flash,具体的应用可以参考官方文档:

http://docs.jinkan.org/docs/flask/patterns/flashing.html#message-flashing-pattern

再深入一层,我们进到flash的定义中会发现,其实flash底层是用session实现的。

原文地址:https://www.cnblogs.com/itxb/p/8638659.html

时间: 2024-08-01 00:04:22

python web开发-flask中消息闪现flash的应用的相关文章

python web开发-flask中日志的使用

Flask使用日志记录的方式: 1. 初始化flask应用实例 在flask中使用logger,需要初始化一个flask的应用 app = Flask(__name__) 2. 调用logger 直接调用logger方法 app.logger.info("my first logging") 这里记录的是info级别的日志 3. 查看结果 运行结果如下: INFO in Code [D:/xxxxx/flask/Code.py:20]: my first logging 默认情况下,f

python web开发-flask中url带斜线/和不带斜线/的区别详解

flask中带斜线和不带斜线的url 通过flask进行路由配置的时候,有一个细节,就是同样的url,带上"/"和不带"/"有什么区别. 举例说明: 比如有个url,名字为"/url" 先同时定义两种url,一种带"/",一种不带"/",如下代码: @app.route("/url")def urlWithOut():return "url with out /" @

python web开发-flask中访问请求数据request

Request对象在web应用的开发中是一个非常重要的对象,主要用来获取用户发来的请求数据. 常用属性参考:http://docs.jinkan.org/docs/flask/api.html#flask.request 下面我们以一个表单提交的例子来说明一些常用request属性的使用. 1. 创建一个表单的template 在templates文件夹下面创建form.html模板文件,输入下面的代码 {% extends "base.html" %} {% import "

python web开发-flask中sqlalchemy的使用

SqlAlchemy是一个python的ORM框架. 在flask中有一个flask-sqlalchemy的扩展,使用起来很方便. 1.       创建一个sqlalchemy的Model模块 创建一个models.py的模块 创建model的时候,首先引入flask-sqlalchemy的扩展 from flask import Flask from flask_sqlalchemy import SQLAlchemy 然后初始化app和sqlalchemy app = Flask(__na

python web开发-flask中读取txt文件内容

某些情况下,需要读取flask网站要目录下的txt文件.但是直接在flask网站的目录下创建一个文件是无法访问的.从网站找了一些资料,最终发现通过写一个方法返回txt内容比较简单方便,不过此方法适用于简单的文件读取以及读取量比较小的时候.详细代码如下: @app.route('/<path>')def today(path):base_dir = os.path.dirname(__file__)resp = make_response(open(os.path.join(base_dir,

python web开发-flask连接sqlite数据库

在之前的文章中我们介绍了如何在centOS中安装sqlite数据库. Sqlite安装完成后,本节就用flask来连接和操作sqlite数据库. 1.       数据准备 先在sqlite3中创建一个数据库mydb,执行sqlite3 mydb 然后执行.databases命令,查看我们创建的数据库 可以看到我们把数据库文件放到了/www/db/mydb文件夹下面 然后我们创建一个user表 使用insert语句 ,写入一条数据到user表中 2.       在code.py中添加获取用户列

Redis的Python实践,以及四中常用应用场景详解——学习董伟明老师的《Python Web开发实践》

首先,简单介绍:Redis是一个基于内存的键值对存储系统,常用作数据库.缓存和消息代理. 支持:字符串,字典,列表,集合,有序集合,位图(bitmaps),地理位置,HyperLogLog等多种数据结构. 支持事务.分片.主从复之.支持RDB(内存数据保存的文件)和AOF(类似于MySQL的binlog)两种持久化方式.3.0加入订阅分发.Lua脚本.集群等特性. 命令参考:http://doc.redisfans.com 中文官网:http://www.redis.net.cn 安装(都大同小

python web 开发学习路线

自己目前学习python web 开发, 经过两个月的摸索,目前对web开发有了浅显的认识,把自己的学习过程贴出来.1.python入门推荐老齐<从零开始学python>,<python简明教程>,这两本书很适合小白入门(像我一样长期徘徊在编程门外的人)2.python进阶推荐<python学习手册>,python学习手册的前半部分与在入门教程中的基础部分相重复,后面部分对python的介绍更细致,比如面向对象的这部分对于小白理解相对容易.还有一本<python

《Python Web开发与接口测试》

为什么学习本书: 是否想学习Python web开发而找不到很好的入门教程. 是否很想知道当你点击一个按钮后,程序到底经过哪些过程把你想要的页面展现在你面前. 是否想告诉别人,不就是开发嘛,我也会. 是否想知道接口到底是什么,它是如何被开发出来的,我们又如何对它进行测试? 为什么是Django? 我们总是很难去决定一件事情.比如,我到底该学Java 呢还是C# 呢? 到底测试的工资高还是开发的高?我学习了Python之后,想学习web开发,是Django 还是Flask 好学.强大和灵活? 搞J