session会话,是指将用户的信息存在服务器端.不同的框架有不同的实现方式.
在flask中,形式上是操作session对象,本质上还是将数据存在了cookie中
flask-session可以设置信息存在服务器的redis,或mysql,以及文件中.而在cookie中存一个key,用来查询

原理:

  • 请求刚到来:获取通过cookie随机字符串,存在则去“数据库”中获取原来的个人数据,否则创建一个空容器(flask中的session对象)。
  • 视图:操作内存中对象(随机字符串,{放置数据的容器})
  • 响应:内存对象(随机字符串,{放置数据的容器})
    - 将数据保存到“数据库”(这个数据库可以是客户端的cookie或者服务端的redis,mysql,mongo,file)
    - 把随机字符串写在用户cookie中

1.flask原始session

在实际应用中,我们只要在session中存储user_id,通过判断session中有没有user_id就可以判断用户是否登录

from flask import Flask, sessionapp = Flask(__name__)
app.config['SECRET_KEY'] = "123"  # 保存在客户端的cookie中,所以要求强制加密@app.route('/get')
def index():name = session.get('name')pwd = session.get('pwd')print(pwd)return name or '没有session'@app.route('/set')
def get_session():session['name'] = 'wang'session['pwd'] = '123'return '设置session!'if __name__ == '__main__':app.run()

2.自定义session行为模式

重写app.session_interface即可,flask-session既是这样实现的

from flask import Flask,session
app = Flask(__name__)
app.secret_key = '123'import json
class MySessionInterFace(object):def open_session(self,app,request):return {}def save_session(self, app, session, response):response.set_cookie('123',json.dumps(session))def is_null_session(self, obj):"""Checks if a given object is a null session.  Null sessions arenot asked to be saved.This checks if the object is an instance of :attr:`null_session_class`by default."""return False
app.session_interface = MySessionInterFace()@app.route('/')
def index():session['xxx'] = 123return 'Index'if __name__ == '__main__':app.run()

参考:
https://blog.csdn.net/feit2417/article/details/80735527

Flask session相关推荐

  1. session、flask session知识的相关收集

    1.打开两个浏览器窗口访问应用程序会使用同一个session还是不同的session session cookie是不能跨窗口使用的,当你新开了一个浏览器窗口进入相同页面时,系统会赋予你一个新的ses ...

  2. Flask session详细用法

    Flask session概念解释 session是基于cookie实现的,保存在服务端的键值对,形式为{随机字符串:'xxxxxx'},同时在浏览器中的cookie中也会保存相同的随机字符串,用来再 ...

  3. flask session伪造

    通过CTF题目进行学习 首先打开题目,查看源代码发下如下注(提)释(示) 看到这个,有经验的大佬们估计可以猜到,八成这题就是要伪造admin登录 习惯性尝试一波弱口令, admin/admin adm ...

  4. Flask session API

    1.首先设置Flask.secret_key或者配置SECRET_KEY 2.flask的session的信息保存在cookie里,默认key是session,通过SESSION_COOKIE_NAM ...

  5. flask session permanent

    在设置了session.permanent =True 后,它也会被保存在cookie中,key 是 _permanent .如果不清除这个cookie,即使你在以后没有设置为True, sessio ...

  6. Flask一:安装初始,return方式,Request,Jinja2,session

    一:安装和初始 1.Flask 安装 + 启动from flask import Flaskapp = Flask(__name__) # 实例化flask对象 # __name__ 多app应用,分 ...

  7. python客户端修改session_python中flask的Session设置的方法介绍

    本篇文章给大家带来的内容是关于python中flask的Session设置的方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 什么是Session? cookie: 客户端浏览 ...

  8. 【Python】Flask框架系列(三):session和cookie操作、get/post请求、钩子函数

    在Flask中操作session 示例:设置session的过期时间 完整版 旧版 设置session的过期时间 示例 # encoding: utf-8from flask import Flask ...

  9. flask总结之session,websocket,上下文管理

    1.关于session flask是带有session的,它加密后存储在用户浏览器的cookie中,可以通过app.seesion_interface源码查看 from flask import Fl ...

最新文章

  1. Numpy 数组复合排序——mX4列,根据多列组合排序
  2. PHP相关关系及定义
  3. numpy库:常用基本
  4. FD.io/VPP — GRE over IPSec
  5. python控制台输出颜色
  6. 二狗叫你制作千M网线的线序及方法
  7. centos6.5搭建git服务器 win10 安装git客户端连接 和遇到的问题+解决方式
  8. git回滚命令reset、revert的区别
  9. 一个人的生活可以简约到什么程度?
  10. 2017 年 10月ios 面试题 总结
  11. 数据分析/运营——用户分层模型RFM
  12. 从传课网论公司是否要卖给资方控股
  13. 火影手游服务器维护多久,《火影忍者》手游结束终极内测的停服公告
  14. c编程语言real,20 种最奇怪的编程语言
  15. Java随笔记 - 内核态和用户态
  16. idea一直indexing JDK卡死解决方案
  17. MIT算法导论03-分治法
  18. 使用负载均衡技术建设高负载的网络站点(经典文章)
  19. linux下 scp 和 ssh 命令
  20. 20189220 余超《Linux内核原理与分析》第三周作业

热门文章

  1. jemeter python接口自动化测试平台_WEB接口开发与自动化测试基于PYTHON语言PDF_Python教程...
  2. Python程序中创建子进程时对环境变量的要求
  3. 1000道Python题库系列分享25(40道Pandas客观题)
  4. Python文件操作与matplotlib数据可视化案例一则
  5. Python+django网页设计入门(11):在线考试与自动评分
  6. Python代码优化之in关键字
  7. 电子计算机专业211大学,这所高校不是211,但“计算机”实力远超985,被称“IT人才摇篮”...
  8. 1. SSM 环境搭建(终极无错版)
  9. 服务器内存条故障显示器,客户的电脑原故障是不开机,现在又变成蓝屏:变着法加钱就搞鬼...
  10. 力扣116. 填充每个节点的下一个右侧节点指针(JavaScript)