广告
返回顶部
首页 > 资讯 > 精选 >如何理解Flask中的Cookie与session
  • 155
分享到

如何理解Flask中的Cookie与session

2023-06-21 20:06:19 155人浏览 泡泡鱼
摘要

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

如何理解flask中的Cookie与session,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

一、Cookie的使用

1、什么是Cookie

我们都知道,Http 协议是无状态的,也就是说,在一次请求响应结束后,服务端不会保留任何对方状态的信息,对于某些需要保留的信息,可以通过 Cookie 技术来完成,通过在请求和响应报文中添加 Cookie 数据来保存客户端的状态信息。

WEB 服务器为了存储某些数据(比如用户信息) 而保存在浏览器上的小型文本数据,浏览器会在一定时间内保存它,在下次向该服务器发送请求时附带这些数据,Cookie 通常被用来进行用户会话管理(比如用户的登录状态),保存用户的一些信息。

2、在Flask中使用Cookie

Flask 中,如果想要在响应中添加一个 cookie,可以使用 response 对象的set_cookie()方法。

set_ cookie()方法的参数如下:

  • keycookie 键名

  • valuecookie

  • max_agecookie 被保存的时间,单位:秒

  • expires:具体的过期时间

  • path:限制 cookie 可用的路径,默认为整个域名

  • domaincookie 可用的域名

  • secure:设置为 True,只有通过 https 才可使用

  • httponly:设置为True,禁止客户端 js 获取 cookie

具体使用如下:

@app.route('user/<name>')def user(name):    response = make_response('hello {}'.fORMat(name), 200)    response.set_cookie("name", name)    return response

Flask 中,Cookie 可以通过 request 请求对象 cookies 属性获取。

@app.route('/hello')def hello():    user = request.args.get('name')    if not user:        user = request.cookies.get("name", 'default')    return 'Hello {}!'.format(user)

二、session的使用

1、什么是session

session 指用户会话,会话可以用来保存当前请求的一些状态,以便于在请求之前共享信息。session是存储在服务端的,通过唯一标识区分用户 session,即 session id,一般情况下,session id 是存在 Cookie 中的,服务端可以获取 Cookie 中的 session id 来获取用户 session

2、Flask中的session对象

我们了解了 Cookie 最重要的功能是用来保存客户端用户的状态信息。但是存在这样一个问题,Cookie 是保存在客户端的,在浏览器中可以轻易的添加和修改 Cookie,而且如果把用户的状态信息以明文的方式存储在 Cookie 里的话,那么就可以通过伪造 Cookie 信息来伪造别人的用户信息,从而获取一些权限。为了避免这个问题,我们要对敏感的 Cookie 内容进行加密。Flask 提供了 session 对象就是用来将 Cookie 数据加密存储的。

3、在Flask中使用session

session 需要通过密钥对数据进行签名以加密数据,因此,需要先设置一个密钥app.secret_key,这里设置的密钥只是一个简单示例,在生产环境中,必须要随机生成的密钥,保证秘钥的复杂度度和随机性,才更安全

# 设置密钥app.secret_key = 'qwertyuiop'@app.route('/user', methods=['POST', 'GET'])def user():    if request.method == 'POST':        user = request.form['user_name']        session['user_name'] = request.form['user_name']        return 'Hello {}!'.format(user)    else:        if 'user_name' in session:            return 'Hello {}!'.format(session["user_name"])

session 对象的使用就跟字典一样,如上,用户使用POST请求登录后,在 session 中保存用户名,下次再使用GET请求时,不传递任何信息,也可以在 session 中获取该用户的信息。

想要清除 session 指定信息的话,例如用户名,可以使用 session.pop("user_name", None),清除全部的话可以使用session.clear()

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网精选频道,感谢您对编程网的支持。

--结束END--

本文标题: 如何理解Flask中的Cookie与session

本文链接: https://www.lsjlt.com/news/300558.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • 如何理解Flask中的Cookie与session
    如何理解Flask中的Cookie与session,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、Cookie的使用1、什么是Cookie我们都知道,HTTP...
    99+
    2023-06-21
  • Flask中Cookie和Session理解与作用介绍
    目录前序1、cookie介绍2、session介绍一、cookie学习1、设置cookie2、客户端(浏览器)二、session学习1、设置SECRET_KEY2、设置session...
    99+
    2022-11-11
  • Servlet【 ServletAPI中的会话管理Cookie与Session】
    Servlet【 ServletAPI中的会话管理Cookie与Session】 🍒一.回顾Cookie与Session🍎1.1 Cookie🍎1.2 Session🍎...
    99+
    2023-08-18
    servlet java 服务器
  • Cookie与Session是如何联动的?
    系列文章目录 HTTP协议中的“报头”(header)和 “正文“ (body)详解_crazy_xieyi的博客-CSDN博客_http头和body Fiddler抓包:下载、安装及使用_crazy_xieyi的博客-CSDN博客 文章...
    99+
    2023-09-01
    servlet java 服务器 Cookie Session
  • PHP开发中如何处理用户session和cookie
    简介:在Web开发中,用户会话(session)和Cookie是两个非常重要的概念。用户会话用于在用户访问网站期间跟踪用户的状态和数据,而Cookie用于在用户的浏览器中存储少量的信息。通过合理的处理和利用,我们可以为用户提供更好的交互体验...
    99+
    2023-10-21
    PHP开发 Session管理 Cookie处理
  • 如何理解JavaScript中的cookie
    本篇文章给大家分享的是有关如何理解JavaScript中的cookie,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。  好程序员web前端培训...
    99+
    2022-10-19
  • 如何理解Python运维开发中的Flask框架
    如何理解Python运维开发中的Flask框架,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。相信曾经纠结过这个问题:怎样才能彻底掌握flaskFlask是一个使用 Pyth...
    99+
    2023-06-17
  • 如何使用Dreamweaver正则表达式彻底解决zencart中的Session Cookie报错、XML解析错误以及空白
    这篇文章给大家分享的是有关如何使用Dreamweaver正则表达式彻底解决zencart中的Session Cookie报错、XML解析错误以及空白的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。zencart可能...
    99+
    2023-06-08
  • Flask中的请求上下文和应用上下文对象如何理解
    这篇文章将为大家详细讲解有关Flask中的请求上下文和应用上下文对象如何理解,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在Flask中处理请求时,应用会生成一个“请求上下文”对象。整个请求...
    99+
    2023-06-17
  • 如何理解HTTP中GET与POST的区别
    这篇文章给大家介绍如何理解HTTP中GET与POST的区别,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的...
    99+
    2022-10-19
  • 如何解决Ajax应用中的session过期问题
    这篇文章主要讲解了“如何解决Ajax应用中的session过期问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何解决Ajax应用中的session过期问...
    99+
    2022-10-19
  • 如何理解JavaScript中的原型与原型链
    本篇文章给大家分享的是有关如何理解JavaScript中的原型与原型链,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。原型和原型链关系贯穿Jav...
    99+
    2022-10-19
  • MySQL中如何理解Semaphore wait与undo log
    本篇文章为大家展示了MySQL中如何理解Semaphore wait与undo log,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。场景:MySQL-5.7.17,...
    99+
    2022-10-19
  • 如何理解linux进程中rootfs与linuxrc
    这期内容当中小编将会给大家带来有关如何理解linux进程中rootfs与linuxrc,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。内核启动的最后阶段启动了三个进程进程0:进程0其实就是刚才讲过的idle...
    99+
    2023-06-06
  • 如何理解Oracle的INITRANS与事务
    本篇文章给大家分享的是有关如何理解Oracle的INITRANS与事务,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 Oracle的INIT...
    99+
    2022-10-19
  • 微信小程序中如何管理http请求的session
    这篇文章给大家分享的是有关微信小程序中如何管理http请求的session的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。微信小程序 http请求的session管理作为一个开发J...
    99+
    2022-10-19
  • 如何理解JavaScript中的浅拷贝与深拷贝
    本篇文章给大家分享的是有关如何理解JavaScript中的浅拷贝与深拷贝,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 浅拷贝在使用JavaScript对数组进行操作...
    99+
    2023-06-16
  • 如何理解与识别Linux中的文件类型
    前言 众所周知,在 linux 中一切皆为文件,包括硬盘和显卡等。在 Linux 中导航时,大部分的文件都是普通文件和目录文件。但是也有其他的类型,对应于 5 类不同的作用。因此,理解 Linux 中的文件类型在许多方面...
    99+
    2022-06-04
    linux文件类型 linux文件类型包括 linux判断文件类型
  • 如何理解Apache配置文件中的deny与allow
    如何理解Apache配置文件中的deny与allow,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Apache配置文件中的deny与allow小结,本文着重讲解了deny和al...
    99+
    2023-06-05
  • 如何使用golang中的net/http/cookiejar包处理HTTP请求中的Cookie
    如何使用Golang中的net/http/cookiejar包处理HTTP请求中的Cookie在使用Golang编写网络爬虫或是进行HTTP请求时,经常需要处理网站返回的Cookie。为了简化Cookie的管理,Golang提供了net/h...
    99+
    2023-11-18
    Golang Http Cookiejar
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作