-
cookie
-
说明:
因为HTTP协议无状态无连接的特点,导致一个用户在同一网站做连续操作,需要不断的提供身份信息;为了解决这个问题,我们可以通过cookie携带特定的信息加以解决。当首次访问网站时设置cookie信息,以后每次再访问该网站时,浏览器会自动携带cookie信息。
-
使用:
from flask import Blueprint, request, make_response
cookie = Blueprint('cookie', __name__, url_prefix='/cookie')
# 获取
@cookie.route('/get/')
def get_cookie():
return request.cookies.get('name', '你是哪个二哥?')
# 设置
@cookie.route('/set/')
def set_cookie():
resp = make_response('cookie已设置')
# 设置cookie,默认有效期为浏览器关闭
# expires:有效期,是一个datetime类型的参数
# max_age:有效期,是一个int类型的参数,推荐使用
resp.set_cookie('name', '二狗', max_age=10)
return resp
# 删除
@cookie.route('/del/')
def del_cookie():
resp = make_response('cookie已删除')
# 删除cookie,其实是设置cookie立即失效
resp.delete_cookie('name')
return resp
-
session
-
说明:
session是一种比cookie更加安全的携带信息的方案,功能与cookie相同。
-
分类:
server side session:数据存放在服务器上,客户端保存的是seesion_id(通过cookie传输)
client side session:将session数据加密编码,然后保存到客户端,flask默认采用的就是这种方案
-
使用:
from flask import Blueprint, session
sess = Blueprint('sess', __name__, url_prefix='/session')
# 获取
@sess.route('/get/')
def get_session():
return session.get('name', 'who are you?')
# 设置
@sess.route('/set/')
def set_session():
# 设置有效期,默认浏览器关闭即失效
# 设置为True,session有效期为永久
# 永久的时间由PERMANENT_SESSION_LIFETIME配置选项决定,默认31天
session.permanent = True
session['name'] = 'cuihua'
return 'session已设置'
# 删除
@sess.route('/del/')
def del_session():
# 删除指定的session,第二个参数设置为None,session不存在也不报错
# session.pop('name', None)
# 清空session
session.clear()
return 'session已删除'