Cookie

获取请求cookie

通过请求对象中的cookies属性可以获取cookie。

实例:

from flask import Flask, request

@app.route("/user-info", methods=["get", "post"])
def userinfo():
username = request.cookies.get("username")
return f"you name is :{username}"

设置响应cookie

通过Response对象的set_cookie()方法设置cookie,同时一般还会设置cookie的有效期、httponly、允许域等等属性。

def set_cookie(self,
key: str,
value: str = "",
max_age: timedelta | int | None = None,
expires: str | datetime | int | float | None = None,
path: str | None = "/",
domain: str | None = None,
secure: bool = False,
httponly: bool = False,
samesite: str | None = None) -> None

实例:

from flask import Flask, request, make_response

@app.route("/user-info", methods=["get", "post"])
def userinfo():
username = request.cookies.get("username") # 构建请求对象并接收
response = make_response(f"you name is :{username}")
response.set_cookie("username", "newname", max_Age=3600)
return f"you name is :{username}"

删除cookie

本质上就是将cookie的有效期设置为0

response.set_cookie("<cookie名>", max_age=0)

Session

flask中使用Session需要配置app中的SECRET_KEY,因为Flask中的session默认并不是存储在服务器端的,而是通过加密算法加密后以cookie形式返回给客户端存储。

客户端携带过来后会进行解密,所以需要设置SECRET_KEY用于加密、解密。

设置secret_key

app.secret_key = "a*)(ihq#Eadbn8/*+XA2qAodhcoi$%^!5ss6z31ssdas"

获取session

通过导入from flask import session来使用

@app.route('/get_session')
def get_session():
username = session.get('username')
return f"you name is {username}"

设置session

from flask import session

@app.route('/set_session')
def set_session():
# 直接用字典的方式设置即可
session['username'] = 'flask'
return 'set session ok'

session的有效期设置

默认情况下session随着会话消失而消失,如果需要长时间保存,则需要设置:

# 1、app配置permanent_session_lifetime
app.permanent_session_lifetime = datatime.timedelta(days=7) # 2、在路由中开启session持久保持属性
@app.route('/set_session')
def set_session():
# 直接用字典的方式设置session即可,这点与django相同
session['username'] = 'flask' # 开启持久保存session,保存的时长为permanent_session_lifetime 所设置的值
session.permanent = True return 'set session ok'

删除session

删除单个

from flask import session

@app.route('/clear_signle_session')
def set_session():
# 由于session就是一个字典,,所以直接可以调用字典的pop方法弹出
session.pop("username")
return "clean username ok"

删除所有

from flask import session

@app.route('/clear_all_session')
def set_session():
# 由于session就是一个字典,,所以直接可以调用字典的clear方法删除所有。
session.clear()
return "clean all session ok"

flask的cookie和session会话保持的更多相关文章

  1. flask中cookie和session介绍

    flask中cookie和session介绍 一.cookie: 在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.co ...

  2. Cookie与Session会话技术

    Cookie与Session会话技术 一.什么是会话 会话:当用户打开浏览器,访问多个WEB资源,然后关闭浏览器的过程,称之为一个会话,选项卡,弹出页面都属于这个会话,且共享同一个session. 二 ...

  3. flask中cookie和session设置

    flask中cookie和session介绍   一.cookie: 在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户. ...

  4. Flask:cookie 和 session (0.1)

    Windows 10家庭中文版,Python 3.6.4,Flask 1.0.2 Cookie是什么?有什么用? 某些网站为了辨别用户身份.进行 session 跟踪而储存在用户本地终端上的数据(通常 ...

  5. Flask中cookie和session设置与csrf原理攻防

    Flask之操作cookie app.py from flask import Flask, request, Response app = Flask(__name__) @app.route('/ ...

  6. Java开发系列-Cookie与Session会话技术

    概述 会话技术:当用户打开浏览器的时候,访问不同的资源,直到用户将浏览器关闭,可以认为这是一次会话.会话技术产生是由于Http请求是一个无状态的协议,它不会记录上次访问的内容,用户在访过程中难免产生一 ...

  7. cookie和session会话技术

    因为http协议是无状态的,也就是说每个客户端访问服务器端资源时,服务器并不知道该客户端是谁,所以需要会话技术识别客户端状态.会话技术是帮助服务器记住客户端状态的. 一次会话的开始是通过浏览器访问某个 ...

  8. python三大框架之一flask中cookie和session的相关操作

    状态保持 Cookie cookie 是指某些网站为了 辨别  用户身份,进行会话跟踪而储存在用户本地的数据(通常会经过加密),复数形式是 coolies. cookie是由服务器端生成,发送给客户端 ...

  9. flask框架--cookie,session

    今天我又给大家分享一下怎么用flask框架来实现像淘宝购物车一样存储数据,并且把存储的数据删除,这个方法可以用两个方法都可以做成,一个是cookie,另一个是session. session是依赖于c ...

  10. Flask (二) cookie 与 session 模型

    会话技术 Cookie 客户端端的会话技术 cookie本身由浏览器保存,通过Response将cookie写到浏览器上,下一次访问,浏览器会根据不同的规则携带cookie过来 ​ 特点:   - 客 ...

随机推荐

  1. C# 异步执行操作

    为了方便测试异步,先加个计时 计时相关(可以直接跳过该部分) //开始计时 Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); // 停 ...

  2. 万字+20张图剖析Spring启动时核心的12个步骤

    大家好,我是三友~~ 今天来扒一扒Spring在启动过程中核心的12个步骤 之所以来写这篇文章,主要是来填坑的 之前在三万字盘点Spring 9大核心基础功能这篇文章的末尾中给自己挖了一个坑,提了一嘴 ...

  3. 使用RabbitMQ最终一致性库存解锁

    一.基本介绍 ①延时队列(实现定时任务) 场景:比如未付款订单,超过一定时间后,系统自动取消订单并释放占有物品. 常用解决方案: spring的 schedule定时任务轮询数据库:缺点:消耗系统内存 ...

  4. linux上搭建Nacos集群(步骤详细,linux小白也能搞定)

    (1)nacos官网:https://github.com/alibaba/nacos/releases/tag/1.2.1下载nacos安装包到window本地(后缀为tar.zip) (2)在li ...

  5. 【.NET8】访问私有成员新姿势UnsafeAccessor(上)

    前言 前几天在.NET性能优化群里面,有群友聊到了.NET8新增的一个特性,这个类叫UnsafeAccessor,有很多群友都不知道这个特性是干嘛的,所以我就想写一篇文章来带大家了解一下这个特性. 其 ...

  6. ORACLE错误代码一览表,方便大家查询!

    ORACLE错误一览表,方便大家查询! ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最 ...

  7. oracle数据库性能监控常用sql

    因执行时间较长建议使用plsql等第三方工具执行 --1.监控sga内存分配信息select * from v$sgainfo;--2.监控每个用户的磁盘io及io命中率select v$sess_i ...

  8. Java-全网最详细数据结构

    数构&算法:数据结构 数据结构是计算机存储.组织数据的方式.数据结构是指相互之间存在一种或多种特定关系的数据元素的集合.通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率.数据结构往 ...

  9. Java 中 extends 与implements 的区别 ?

    一.介绍extends 与 implements 的概念 1.类与类之间的继承使用extends : 子类extends父类的属性和方法,并且进行扩展或者重写. // 父类 class Animal ...

  10. C、C++函数和类库详解(GCC版)(2014-4-23更新)

    C.C++函数和类库详解(GCC版)(未完成) 整理者:高压锅 QQ:280604597 Email:280604597@qq.com 大家有什么不明白的地方,或者想要详细了解的地方可以联系我,我会认 ...