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

时间:2023-03-09 04:09:32
python三大框架之一flask中cookie和session的相关操作

状态保持

Cookie

cookie 是指某些网站为了 辨别  用户身份,进行会话跟踪而储存在用户本地的数据(通常会经过加密),复数形式是 coolies.

cookie是由服务器端生成,发送给客户端浏览器,浏览器会见Cookie中的key和value保存,下一次请求同一个浏览器时发给cookie服务端(前提是浏览器设置为启用cookie),cookie中的key和value可以由服务端自己定义。

cookie基本应用在判断注册用户是否登陆网站,网站的广告推送,购物车等。

小提示:

因为cookie是储存在浏览器上的文本信息,有可能会被其他人使用,建议不要储存敏感信息;

cookie基于域名安全,不同域名的cookie是不能互相访问的。

cookie的应用

#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的方法
@app.route('/setcookie')
def set_cookie():
resp = make_response('储存cookie')
#使用方法set_cookie来存储key-value形式的数据,可以添加存活时间
resp.set_cookie('productnamae','[卫生纸','胶布]',max_age=3600)       #在储存cookie时,可以设置过期时间
return resp
#调用cookie的方法
@app.route("/getcookie")
def get_cookie():
#通过request模块的cookies模块的get方法,指定key调用value
resp = request.cookies.get('productnamae')
return resp
#删除模块
@app.route('/delecookie')
def del_cookie():
#通过make_response对象内置的delete_cookie方法,指定key调用value
resp = make_response('删除cookie')
resp.delete_cookie('productnamae')
return resp

#程序入口

if __name__ == "__main__":
app.run()
session
对于敏感,重要的信息,建议储存到服务器端,不能储存到浏览器中,如用户名,余额,密码等,在服务端进行状态保持的方案就是Session
sessoin依赖于cookie.
session:请求上下文对象,用于处理HTTP请求中的一些数据
应用
#session是依赖于flask的session模块
#如果想使用sessi模块,必须在配置里添加
from flask import Flask,session
#建立对象
app = Flask(__name__)
#从配置文件中加载配置
app.config.from_pyfile('config.ini')
@app.route('/')
def index():
return '我是首页,session'
#存储session的方法
@app.route('/set_session')
def set_session():
#直接使用session对储存的内容复值
session['username'] = '你好'
return '存储session成功'
#调用session方法
@app.route('/get_session')
def get_session():
#通过session直接对内容进行调用
se = session['username']
return se
#删除session方法
@app.route('/del_session')
def del_session():
#通过session的post方法指定key删除value
session.pop('username')
return '删除成功'
if __name__ == "__main__":
app.run()