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. mysql锁初识

    MySQL锁的粒度分为:行级锁.表级锁.页级锁. 一.行级锁(INNODB引擎) 行级锁是Mysql中锁定粒度最细的一种锁,表示只针对当前操作的行进行加锁. 行级锁能大大减少数据库操作的冲突.其加锁粒 ...

  2. 慢SQL治理实践及落地成果分享

    一.治理背景 数据库系统性能问题会对应用程序的性能和用户体验产生负面影响.慢查询可能导致应用程序响应变慢.请求堆积.系统负载增加等问题,甚至引发系统崩溃或不可用的情况.慢SQL治理是在数据库系统中针对 ...

  3. 有人说SaToken吃相难看,你怎么看。

    前言 今天摸鱼逛知乎,偶然看到了一个回答,8月份的,是关于SaToken的,一时好奇就点了进去. 好家伙,因为一个star的问题,提问的人抱怨了许多,我有些意外,就仔细看了下面的评论,想知道一部分人的 ...

  4. 【好玩】如何在github主页放一条贪吃蛇

    前言 缘由 github放小蛇,就问你烧不烧 起因看到大佬github上有一条贪吃蛇扭来扭去,觉得好玩,遂给大家分享一下本狗的玩蛇历程 成果初展 贪吃蛇 访问地址 https://github.com ...

  5. MediaRecorder test

    public class MediaRecorder extends Object java.lang.Object    ↳ android.media.MediaRecorder Class Ov ...

  6. 算法修养--广度优先搜索BFS

    广度优先算法(BFS) 广度优先算法(Breadth-First Search)是在图和树领域的搜索方法,其核心思想是从一个起始点开始,访问其所有的临近节点,然后再按照相同的方式访问这些临近节点的节点 ...

  7. [ABC205E] White and Black Balls 题解

    White and Black Balls 题目大意 将 \(n\) 个白球,\(m\) 个黑球排成一列,要求满足 \(\forall i\in[1,n+m],w_i\le b_i+k\),问存在多少 ...

  8. 定时重启Nginx、MySql等服务

    利用 Linux Crontab,每天定时重启 Nginx.MySQL等服务. 命令行格式说明 f1 f2 f3 f4 f5 program 其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份 ...

  9. eNSP小实验——配置路由器与主机

    练习一 在eNSP里配置路由器与主机,IP地址与端口 配置PC1 配置PC2,特别注意IP地址与网关 配置路由器一 <Huawei>sys[Huawei]int g0/0/0 [Huawe ...

  10. 程序是如何在计算机上被执行的?(下篇:cpu工作原理)

    本文接上文程序是如何在计算机上被执行的?(上篇:软件部分),主要内容是机器语言如何在计算机硬件上运行,关于逻辑门,加法器,布尔运算,亦即,cpu的工作原理. 1.逻辑门 以下图片是<三体> ...