当前位置:网站首页>【flask入门系列】Cookie与Session
【flask入门系列】Cookie与Session
2022-07-01 16:21:00 【馆主阿牛】
个人简介
- 作者简介:大家好,我是阿牛,全栈领域新星创作者。
- 博主的个人网站:阿牛的博客小屋
- 支持我:点赞+收藏️+留言
- 系列专栏:flask框架快速入门
- 格言:要成为光,因为有怕黑的人!

前言
今天我总结一下flask中的cookie与session,flask中的session和正常的session是不一样的,为浏览器session,保存在浏览器。
cookie
1.设置cookie
#导入Flask类和request对象
from flask import Flask,make_response
app = Flask(__name__)
# 从配置对象中加载的默认配置
class DefaultConfig(object):
SECRET_KEY = 'jstwn63bng'
DEBUG = True
ENV = 'development'
app.config.from_object(DefaultConfig)
@app.route('/cookie')
def cookie():
resp = make_response("设置cookie")
resp.set_cookie("aniu","handsome")
return resp
# Flask应用程序的run方法启动web服务器
if __name__ == '__main__':
app.run(port=8000)

2.设置cookie有效期
@app.route('/cookie')
def cookie():
resp = make_response("设置cookie")
resp.set_cookie("aniu","handsome",max_age=4000) #max_age为最大过期时间的毫秒数
return resp
3.获取cookie
#导入Flask类和request对象
from flask import Flask,make_response,request
app = Flask(__name__)
# 从配置对象中加载的默认配置
class DefaultConfig(object):
SECRET_KEY = 'jstwn63bng'
DEBUG = True
ENV = 'development'
app.config.from_object(DefaultConfig)
#设置cookie
@app.route('/set_cookie')
def set_cookie():
resp = make_response("设置cookie")
resp.set_cookie("aniu","handsome")
return resp
#获取cookie
@app.route('/get_cookie')
def get_cookie():
resp = request.cookies.get('aniu')
return resp
# Flask应用程序的run方法启动web服务器
if __name__ == '__main__':
app.run(port=5000)

4.删除cookie
@app.route('/delete_cookie')
def delete_cookie():
resp = make_response("设置cookie")
resp.delete_cookie("aniu","handsome")
return resp
session
注意:需要先设置SECRET_KEY,为什么呢?我们在前言中说过,flask中的session是浏览器session,保存在浏览器,因此需要一个密钥。
#导入Flask类和request对象
from flask import Flask,session
app = Flask(__name__)
# 从配置对象中加载的默认配置
class DefaultConfig(object):
SECRET_KEY = 'jstwn63bng'
DEBUG = True
ENV = 'development'
app.config.from_object(DefaultConfig)
#设置session
@app.route('/set_session')
def set_session():
session['username'] = 'aniu'
return 'set session ok'
#读取
@app.route('/get_session')
def get_session():
username = session.get('username')
return 'get session username {}'.format(username)


思考:flask将session保存到哪里了?
在django中,对于session的保存,在数据库中会有一张专门的表去保存session数据,而我们flask中的session在上面说过,其实是一种浏览器session,他保存在浏览器。
>所以,放到浏览器之后就会有安全问题,因此就必须加一个“签名”,只有是我自己“签名”的才行,你拿过去修改后不能用。那如何保证这个签名是我自己的呢,就离不开我们的SECRET_KEY了。因此你看到的session中的内容可以说是“被加密”了。
结语
如果你觉得博主写的还不错的话,可以关注一下当前专栏,博主会更完这个系列的哦!也欢迎订阅博主的其他好的专栏。
系列专栏
软磨 css
硬泡 javascript
前端实用小demo
更多专栏请移步博主主页查看! 博主的个人网站也很有趣,可以光顾一下哦:阿牛的博客小屋
边栏推荐
- OJ questions related to complexity (leetcode, C language, complexity, vanishing numbers, rotating array)
- 数据库系统原理与应用教程(005)—— yum 离线安装 MySQL5.7(Linux 环境)
- 数据库系统原理与应用教程(002)—— MySQL 安装与配置:MySQL 软件的卸载(windows 环境)
- How to restore the system with one click on Lenovo laptop
- The sharp drop in electricity consumption in Guangdong shows that the substitution of high-tech industries for high-energy consumption industries has achieved preliminary results
- 接口测试框架中的鉴权处理
- Apple's self-developed baseband chip failed again, which shows Huawei Hisilicon's technological leadership
- Principle of motion capture system
- 游戏行业安全选择游戏盾,效果怎么样?
- How to write good code - Defensive Programming Guide
猜你喜欢

Use Tencent cloud to build a map bed service

学会了selenium 模拟鼠标操作,你就可以偷懒点点点了

部门来了个拿25k出来的00后测试卷王,老油条表示真干不过,已被...

Stegano in the world of attack and defense

How to use MySQL language for row and column devices?

The picgo shortcut is amazing. This person thinks exactly the same as me

普通二本,去过阿里外包,到现在年薪40W+的高级测试工程师,我的两年转行心酸经历...

Problèmes rencontrés dans le développement de la GI pour maintenir le rythme cardiaque en vie

Motion capture system for apple picking robot

Tutorial on principles and applications of database system (004) -- MySQL installation and configuration: resetting MySQL login password (Windows Environment)
随机推荐
从大湾区“1小时生活圈”看我国智慧交通建设
Idea start command line is too long problem handling
学会了selenium 模拟鼠标操作,你就可以偷懒点点点了
How to write good code - Defensive Programming Guide
Comprehensively view the value of enterprise digital transformation
Buuctf gold III
动作捕捉系统用于苹果采摘机器人
Huawei issued hcsp-solution-5g security talent certification to help build 5g security talent ecosystem
Leetcode 216 combined summation III -- backtracking method
Pico, do you want to save or bring consumer VR?
Red team Chapter 8: blind guess the difficult utilization process of the package to upload vulnerabilities
如何使用phpIPAM来管理IP地址和子网
In the past six months, it has been invested by five "giants", and this intelligent driving "dark horse" is sought after by capital
圈铁发音,动感与无噪强强出彩,魔浪HIFIair蓝牙耳机测评
How to use MySQL language for row and column devices?
Korean AI team plagiarizes shock academia! One tutor with 51 students, or plagiarism recidivist
Go 语言错误处理为什么更推荐使用 pkg/errors 三方库?
StoneDB 为国产数据库添砖加瓦,基于 MySQL 的一体化实时 HTAP 数据库正式开源!
VMware 虚拟机启动时出现故障:VMware Workstation 与 Hyper-v 不兼容...
Principle of motion capture system
>所以,放到浏览器之后就会有安全问题,因此就必须加一个“签名”,只有是我自己“签名”的才行,你拿过去修改后不能用。那如何保证这个签名是我自己的呢,就离不开我们的SECRET_KEY了。因此你看到的session中的内容可以说是“被加密”了。