flask的cookie和session的简单原理
程序员文章站
2022-06-09 15:53:46
在Flask的框架中,自己已经封装了 cookie的respons,request 有存储就有读取及删除,那么就拿购物车来举例 在我们登陆的时候会有之前在购物车存放的物品。也就是说在一个地方为我们保存了这些数据。前提有一个是要你登陆之后才能看到自己的购物车 cookie对应的是client sess ......
在flask的框架中,自己已经封装了 cookie的respons,request 有存储就有读取及删除,那么就拿购物车来举例
在我们登陆的时候会有之前在购物车存放的物品。也就是说在一个地方为我们保存了这些数据。前提有一个是要你登陆之后才能看到自己的购物车
cookie对应的是client session对应的是server。 也就是说,要在服务器上登录你对应的账户,才能看到你自己在购物车添加的物品。但是
物品那么多,不能都存在服务器上吧,所以一般cookie都存在自己的计算机上,只是找不到而已,这里就不说了。一些简单的原理实现一下。
思路有了,就要上代码
首先来看cookie的简单存储,读数据,删除数据怎么实现
# -*- encoding: utf-8 -*-
# cookie相关的操作,依赖于make_response库,调用cookie依赖request
# 导包
from flask import flask, make_response, request
# 建立对象
app = flask(__name__)
# 从配置文件中加载配置
app.config.from_pyfile('config.ini')
@app.route('/')
def index():
return '这里是首页'
# cookie存在client里。存在自己电脑的个人当资料里
# 存cookie的方法
@app.route('/setcookie')
def set_cookie():
resp = make_response('存储cookie')
# 使用set方法,来存储 key-values 形式的数据
resp.set_cookie('productname','卫生纸')
return resp
# 获取,取到数据,调用cookie的方法
@app.route('/getcookie')
def get_cookie():
# 通过request模块的cookies属性的方法指定key 来调用value
resp = request.cookies.get('productname')
return resp
# 删除cookie的方法
@app.route('/delcookie')
def del_cookie():
# 通过make_response对象内置的delete_cookie方法来指定key来删除vaule
resp = make_response('删除cookie')
resp.delete_cookie('productname')
return resp
# 程序入口
if __name__ == "__main__":
app.run()
那么再来看session的简单实现,相比较而言,session的会简单些。
# -*- encoding: utf-8 -*-
# session 是依赖于flask的session模块
# 如果想要使用session模块。必须在配置文件中定义 secret——key (安全密钥)
# 导包
from flask import flask, session
# 实例化对象
app = flask(__name__)
# 配置文件
app.config.from_pyfile('config.ini')
# 创建首页
@app.route('/')
def index():
return '这是服务端'
# 存储session的方法
@app.route('/setsession')
def set_session():
# 直接使用session对存储的内容赋值
session['username'] = '你好啊, 这是我的私有属性。只有在服务端才能调用。客户端是调用不了这个session的key-value'
return '存储session成功'
# 有存储就有取
@app.route('/getsession')
def get_session():
# 通过session直接对内容进行调用
se = session['username']
return se
# 删除session的方法。
@app.route('/delsession')
def del_session():
# 通过session的pop方法来指定key删除vaule
session.pop('username')
return '删除成功'
# 程序入口
if __name__ == "__main__":
app.run()
为了更好的业务,敲最好的代码。(我的也不怎么样[/捂脸])欢迎阅读
推荐阅读
-
php同时使用session和cookie来保存用户登录信息的实现代码,sessioncookie_PHP教程
-
关于YII Session与Cookie的有效期的问题和cookie与session的关系
-
php session和cookie的区别
-
PHP的学习--cookie和session
-
Yii2.0中的COOKIE和SESSION用法
-
详解PHP中cookie和session的区别及cookie和session用法小结
-
php同时使用session和cookie来保存用户登录信息的实现代码
-
解析PHP的Yii框架中cookie和session功能的相关操作
-
浅谈cookie 和session 的区别
-
基于java中cookie和session的比较