session的交互流程

Session

  • 对于敏感、重要的信息,建议存在服务器端,不能存储在浏览器中,比如用户名,密码,余额,验证码等信息
  • 在服务器端进行状态保持的方案就是Session
  • Session依赖于Cookie

设置和获取Session

from flask import Flask
from flask import session
from flask import redirect
from flask import url_for app = Flask(__name__)
"""SECRET_KEY配置是通用秘钥,可以在Flask和多个第三方扩展中使用,
如其名所示,加密的强度取决于变量值的复杂度,不同程序要使用不同的秘钥
并且保证其他人不知道你所用的字符串
"""
app.secret_key = "" # 用于加密session值 """考虑到安全性,这个秘钥是不建议存储在程序中的,
最好的方法是存储在你的系统环境变量中,通过
os.getenv(key,default=None)获得
""" @app.route('/set_session')
def set_session(): # 设置Session
session['user_name'] = 'laowang'
return redirect(url_for('demo1')) # 重定向到demo1,将session同时传递到demo视图中 @app.route('/')
def demo1():
return session.get("user_name","") # 获取Session,如果Session没有找到,返回一个空字符串给demo1视图 @app.route('/logout')
def logout(): # 删除Session
session.pop("user_name")
return "删除成功" if __name__ == '__main__':
app.run(debug = True)

在我们访问/logout视图之后,再访问demo1,我们发现报错了(上图代码中红色部分不添加的情况下),说明我们的Session删除成功。

如果在没有找到session的情况下,不发生报错,可以给视图返回一个空字符串(添加红色部分)

Session分析流程图

Flask基础(11)-->http的无状态协议解决办法二(服务端session)的更多相关文章

  1. Flask基础(10)-->http的无状态协议解决办法一(客户端cookie)

    http的无状态协议 http是一种无状态协议,浏览器请求服务器时无状态的 什么是无状态? 无状态:指的是一次用户请求时,浏览器.服务器无法知道之前这个用户做过什么,每次请求都是一次新的请求. 无状态 ...

  2. HTTP协议是无状态协议,怎么理解?

     Http是一个无状态协议,同一个会话的连续两个请求互相不了解,他们由最新实例化的环境进行解析,除了应用本身可能已经存储在全局对象中的全部信息外,该环境不保存与会话有关的不论什么信息. 自己的理解,在 ...

  3. HTTP协议是无状态协议,怎么理解

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp24 HTTP协议是无状态协议,怎么理解?  2010-02-23 09:4 ...

  4. 《图解HTTP》读书笔记(三:无状态协议/cookie管理状态)

    HTTP是一种不保存状态,即无状态(stateless)协议.HTTP协议自身不对请求和响应之间的通信状态进行保存. ——HTTP/1.1虽然是无状态协议,但为了实现期望的保持状态功能,于是引入了Co ...

  5. http无状态协议,cookie和session详解(一)

    1.HTTP无状态协议 首先看百度百科给出的定义: HTTP无状态协议,是指协议对于事务处理没有记忆能力.缺少状态意味着如果后续处理需要前面的信息,则它必须重传, 这样导致可能每次连接传送的数据量增大 ...

  6. HTTP无状态协议

    http://baike.baidu.com/view/4551466.htm HTTP协议是无状态协议. 无状态是指协议对于事务处理没有记忆能力.缺少状态意味着如果后续处理需要前面的信息,则它必须重 ...

  7. HTTP无状态协议理解

    TTP协议是无状态协议. 无状态是指协议对于事务处理没有记忆能力.缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大.另一方面,在服务器不需要先前信息时它的应 ...

  8. .net平台 基于 XMPP协议的即时消息服务端简单实现

    .net平台 基于 XMPP协议的即时消息服务端简单实现 昨天抽空学习了一下XMPP,在网上找了好久,中文的资料太少了所以做这个简单的例子,今天才完成.公司也正在准备开发基于XMPP协议的即时通讯工具 ...

  9. Eclipse无提示的解决办法 和 内容辅助技巧

    Eclipse无提示的解决办法 和 内容辅助技巧 一.若发现内容辅助失效没有提示 下面是解决办法,现贴出来与大家共享:       1.菜单window->Preferences->Jav ...

随机推荐

  1. 【原创】(二)Linux物理内存初始化

    背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...

  2. (七)分布式通信----Netty实现NIO通信

    目录 1. 消息监听器 2. 指令执行器 3. 消息发送器 4. 客户端工厂 5. 序列化工具 6. 通信主机 项目文件结构图 通信主机: 1. 消息监听器(黄色框) 这部分由 Netty 实现,Ne ...

  3. CentOS搭建php + nginx环境

    更新Centos的yum源 yum update 安装EPEL源和REMI源 yum install epel-release yum install http://rpms.remirepo.net ...

  4. 浏览 GitHub 太卡了?教你两招!

    老实说,GitHub 在国内的使用体验并不算太好,这其中最大的原因就是网络了. GitHub 访问起来比较卡,这个看起来貌似无解.国内的 gitee 网速倒是可以,但是无法代替 GitHub,个人感觉 ...

  5. Drop Table对MySQL的性能影响分析

    [问题描述] 最近碰到有台MySQL实例出现了MySQL服务短暂hang死,表现为瞬间的并发线程上升,连接数暴增. 排查Error Log文件中有page_cleaner超时的信息,引起我们的关注: ...

  6. Struts2中文乱码问题 过滤器源码分析

    整理自网上: 前几天在论坛上看到一篇帖子,是关于Struts2.0中文乱码的,楼主采用的是spring的字符编码过滤器 (CharacterEncodingFilter)统一编码为GBK,前台提交表单 ...

  7. NLP(二十) 利用词向量实现高维词在二维空间的可视化

    准备 Alice in Wonderland数据集可用于单词抽取,结合稠密网络可实现其单词的可视化,这与编码器-解码器架构类似. 代码 from __future__ import print_fun ...

  8. codeforces 807 C. Success Rate(二分)

    题目链接:http://codeforces.com/contest/807/problem/C 题意:记 AC 率为当前 AC 提交的数量 x / 总提交量 y .已知最喜欢的 AC 率为 p/q ...

  9. ‎Cocos2d-x 学习笔记(24) ParticleSystem ParticleSystemQuad

    1. ParticleSystem ParticleData是存储粒子数据的类,ParticleSystem会关联一个ParticleData对象. ParticleSystem直接继承了Node.T ...

  10. 面向微服务的体系结构评审中需要问的三个问题-咖啡杂谈:Java、新闻、故事和观点

    面向微服务的体系结构如今风靡全球.这是因为更快的部署节奏和更低的成本是面向微服务的体系结构的基本承诺. 然而,对于大多数试水的公司来说,开发活动更多的是将现有的单块应用程序转换为面向微服务的体系结构, ...