我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Flask中Cookie和Session理解与作用介绍

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Flask中Cookie和Session理解与作用介绍

前序

1、cookie介绍

Cookie是一段不超过4KB的小型文本数据,保存在客户端浏览器中,由一个名称(Name)、一个值(Value)和其它几个用于控制Cookie有效期、安全性、使用范围的可选属性组成。其中 :

(1) Name/Value:设置Cookie的名称及相对应的值,对于认证Cookie,Value值包括Web服务器所提供的访问令牌。

(2) Expires属性:设置Cookie的生存期。有两种存储类型的Cookie:会话性与持久性。Expires属性缺省时,为会话性Cookie,仅保存在客户端内存中,并在用户关闭浏览器时失效;持久性Cookie会保存在用户的硬盘中,直至生存期到或用户直接在网页中单击“注销”等按钮结束会话时才会失效 。

(3) Path属性:定义了Web站点上可以访问该Cookie的目录 。

(4) Domain属性:指定了可以访问该 Cookie 的 Web 站点或域。

2、session介绍

Session:与cookie功能效果相同。Session与Cookie的区别在于Session是记录在服务端的,而Cookie是记录在客户端的。

当访问服务器否个网页的时候,会在服务器端的内存里开辟一块内存,这块内存就叫做session,而这个内存是跟浏览器关联在一起的。这个浏览器指的是浏览器窗口,或者是浏览器的子窗口,意思就是,只允许当前这个session对应的浏览器访问,就算是在同一个机器上新启的浏览器也是无法访问的。而另外一个浏览器也需要记录session的话,就会再启一个属于自己的session。

一、cookie学习

1、设置cookie

  • 在服务器设置cookie需要导入make_response包
  • response=make_response(‘hello world’) 括号这里传入的值是在客户端响应的内容
  • response.set_cookie(‘username’,‘mashibing’,max_age=3600) 第一个值是cookie名称,第二个值cookie内容,第三个值设置cookie的有效时间
  • 这个有效时间在服务器没有关闭的状态下,有效时间内,即使你关闭了客户端(浏览器),再次打开客户端(浏览器)仍能访问到。
from flask import *
app=Flask(__name__)
#设置cookie以及有效性期
@app.route('/cookie')
def set_cookiei():
    response=make_response('hello world')
    response.set_cookie('username','mashibing',max_age=3600)
    return response
#读取
@app.route('/get_cookie')
def get_cookie():
    resp=request.cookies.get('username')
    return resp
if __name__ == '__main__':
    app.run()

2、客户端(浏览器)

二、session学习

1、设置SECRET_KEY

  • 这里SECRET_KEY的值是可以随机设置,可以使用os.urandom(24) 随机生成24位字符
  • 此值 [ SECRET_KEY 设置]是保护签名数据的关键 - 保持此安全至关重要,否则攻击者可以使用它来生成自己的签名值。
  • 设置SECRET_KEY 配合加密算法生成sessionID
  • PERMANENT_SESSION_LIFETIME=timedelta(minutes=30) 设置该sessionID在服务器存储的时间,在有效时间内客户端(浏览器)关掉后再次重新访问时,会对其session ID进行校验,若是之前保存在服务器的session ID对应,则可以拿到之前session值。
class Df(object):
    SECRET_KEY=os.urandom(24)
    PERMANENT_SESSION_LIFETIME=timedelta(minutes=30)

2、设置session

  • 这里设置session值在客户端是看不到的,相对安全,除非服务器崩了。
  • 设置的session会保存在服务器。
  • session.permanent=True #这行代码也要写不然前面定义的时间失效。
  • 设置session是以键值对的形式。
@app.route('/test1')
def test1():
    session.permanent=True  #这行代码也要写不然前面定义的时间失效
    #设置session
    session['un']='ywx'
    session['pwd']='123456'
    return 'hello ywx'

3、获取session值

通过session.get() 获取定义的值

#读取session
@app.route('/test2')
def test2():
    un=session.get('un')
    pwd=session.get('pwd')
    print(un,pwd)
    return '获取session的值'

4、整体代码展示

from flask import *
import os
from datetime import timedelta
app=Flask(__name__)
#设置SECRET_KEY
class Df(object):
    SECRET_KEY=os.urandom(24)
    PERMANENT_SESSION_LIFETIME=timedelta(minutes=30)
#导进来参数
app.config.from_object(Df)
@app.route('/test1')
def test1():
    session.permanent=True  #这行代码也要写不然前面定义的时间失效
    #设置session
    session['un']='ywx'
    session['pwd']='123456'
    return 'hello ywx'
#读取session
@app.route('/test2')
def test2():
    un=session.get('un')
    pwd=session.get('pwd')
    print(un,pwd)
    return '获取session的值'
if __name__ == '__main__':
    app.run()

5、客户端(浏览器)展示

到此这篇关于Flask中Cookie和Session理解与作用介绍的文章就介绍到这了,更多相关Flask Cookie Session内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Flask中Cookie和Session理解与作用介绍

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何理解Flask中的Cookie与session

如何理解Flask中的Cookie与session,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、Cookie的使用1、什么是Cookie我们都知道,HTTP
2023-06-21

操作系统中的Hosts文件工作原理和作用及其详细介绍

一、什么是Hosts文件? Hosts是一个没有扩展名的系统文件,Hosts文件是一个用于存储计算机网络中节点信息的文件,它可以将主机名映射到相应的IP地址,实现DNS的功能,它可以由计算机的用户进行控制。可以用记事本等工具打开,其作用就是
2023-06-16

继承与多态的协同作用:理解 ASP 中对象关系和动态绑定的交互

在 ASP 中,继承和多态可以协同作用,提供对象关系和动态绑定的强大功能,从而创建灵活且可维护的代码。
继承与多态的协同作用:理解 ASP 中对象关系和动态绑定的交互
2024-03-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录