flask的cookie和session会话保持
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会话保持的更多相关文章
- flask中cookie和session介绍
flask中cookie和session介绍 一.cookie: 在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.co ...
- Cookie与Session会话技术
Cookie与Session会话技术 一.什么是会话 会话:当用户打开浏览器,访问多个WEB资源,然后关闭浏览器的过程,称之为一个会话,选项卡,弹出页面都属于这个会话,且共享同一个session. 二 ...
- flask中cookie和session设置
flask中cookie和session介绍 一.cookie: 在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户. ...
- Flask:cookie 和 session (0.1)
Windows 10家庭中文版,Python 3.6.4,Flask 1.0.2 Cookie是什么?有什么用? 某些网站为了辨别用户身份.进行 session 跟踪而储存在用户本地终端上的数据(通常 ...
- Flask中cookie和session设置与csrf原理攻防
Flask之操作cookie app.py from flask import Flask, request, Response app = Flask(__name__) @app.route('/ ...
- Java开发系列-Cookie与Session会话技术
概述 会话技术:当用户打开浏览器的时候,访问不同的资源,直到用户将浏览器关闭,可以认为这是一次会话.会话技术产生是由于Http请求是一个无状态的协议,它不会记录上次访问的内容,用户在访过程中难免产生一 ...
- cookie和session会话技术
因为http协议是无状态的,也就是说每个客户端访问服务器端资源时,服务器并不知道该客户端是谁,所以需要会话技术识别客户端状态.会话技术是帮助服务器记住客户端状态的. 一次会话的开始是通过浏览器访问某个 ...
- python三大框架之一flask中cookie和session的相关操作
状态保持 Cookie cookie 是指某些网站为了 辨别 用户身份,进行会话跟踪而储存在用户本地的数据(通常会经过加密),复数形式是 coolies. cookie是由服务器端生成,发送给客户端 ...
- flask框架--cookie,session
今天我又给大家分享一下怎么用flask框架来实现像淘宝购物车一样存储数据,并且把存储的数据删除,这个方法可以用两个方法都可以做成,一个是cookie,另一个是session. session是依赖于c ...
- Flask (二) cookie 与 session 模型
会话技术 Cookie 客户端端的会话技术 cookie本身由浏览器保存,通过Response将cookie写到浏览器上,下一次访问,浏览器会根据不同的规则携带cookie过来 特点: - 客 ...
随机推荐
- mysql锁初识
MySQL锁的粒度分为:行级锁.表级锁.页级锁. 一.行级锁(INNODB引擎) 行级锁是Mysql中锁定粒度最细的一种锁,表示只针对当前操作的行进行加锁. 行级锁能大大减少数据库操作的冲突.其加锁粒 ...
- 慢SQL治理实践及落地成果分享
一.治理背景 数据库系统性能问题会对应用程序的性能和用户体验产生负面影响.慢查询可能导致应用程序响应变慢.请求堆积.系统负载增加等问题,甚至引发系统崩溃或不可用的情况.慢SQL治理是在数据库系统中针对 ...
- 有人说SaToken吃相难看,你怎么看。
前言 今天摸鱼逛知乎,偶然看到了一个回答,8月份的,是关于SaToken的,一时好奇就点了进去. 好家伙,因为一个star的问题,提问的人抱怨了许多,我有些意外,就仔细看了下面的评论,想知道一部分人的 ...
- 【好玩】如何在github主页放一条贪吃蛇
前言 缘由 github放小蛇,就问你烧不烧 起因看到大佬github上有一条贪吃蛇扭来扭去,觉得好玩,遂给大家分享一下本狗的玩蛇历程 成果初展 贪吃蛇 访问地址 https://github.com ...
- MediaRecorder test
public class MediaRecorder extends Object java.lang.Object ↳ android.media.MediaRecorder Class Ov ...
- 算法修养--广度优先搜索BFS
广度优先算法(BFS) 广度优先算法(Breadth-First Search)是在图和树领域的搜索方法,其核心思想是从一个起始点开始,访问其所有的临近节点,然后再按照相同的方式访问这些临近节点的节点 ...
- [ABC205E] White and Black Balls 题解
White and Black Balls 题目大意 将 \(n\) 个白球,\(m\) 个黑球排成一列,要求满足 \(\forall i\in[1,n+m],w_i\le b_i+k\),问存在多少 ...
- 定时重启Nginx、MySql等服务
利用 Linux Crontab,每天定时重启 Nginx.MySQL等服务. 命令行格式说明 f1 f2 f3 f4 f5 program 其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份 ...
- eNSP小实验——配置路由器与主机
练习一 在eNSP里配置路由器与主机,IP地址与端口 配置PC1 配置PC2,特别注意IP地址与网关 配置路由器一 <Huawei>sys[Huawei]int g0/0/0 [Huawe ...
- 程序是如何在计算机上被执行的?(下篇:cpu工作原理)
本文接上文程序是如何在计算机上被执行的?(上篇:软件部分),主要内容是机器语言如何在计算机硬件上运行,关于逻辑门,加法器,布尔运算,亦即,cpu的工作原理. 1.逻辑门 以下图片是<三体> ...