Cookie 与 Session
Cookie
设置 set_cookie 实质:在响应头中增加了一个set_cookie响应头。
读取 request.cookies.get 。请求体里有了一个cookies。
删除 response.delete_cookie() 实设置过期时间max_age=1970年(响应报文中没有delete相关信息)
Set-Cookie: name=;
Expires=Thu, 01-Jan-1970 00:00:00 GMT;
Max-Age=0;
Path=/
设置
from flask import Flask, make_responseapp = Flask(__name__)@app.route('/cookie')
def set_cookie():
resp = make_response('set cookie ok')
resp.set_cookie('username', 'itcast')
return resp
设置有效期
@app.route('/cookie')
def set_cookie():
response = make_response('hello world')
response.set_cookie('username', 'itheima', max_age=3600)
return response
读取
from flask import request@app.route('/get_cookie')
def get_cookie():
resp = request.cookies.get('username')
return resp
删除
from flask import request@app.route('/delete_cookie')
def delete_cookie():
response = make_response('hello world')
response.delete_cookie('username')
return response
Session
falsk提供了session对象
设置:session[name]=value
读取:session.get('name)
**note:**直接设置session是会报错的!!!
【flask|Flask学习_07_Cookie 与 Session】需要先设置SECRET_KEY
方法一:
class DefaultConfig(object):
SECRET_KEY = 'fih9fh9eh9gh2'app.config.from_object(DefaultConfig)
方法二:
或者直接设置
app.secret_key='xihwidfw9efw'
设置
from flask import session@app.route('/set_session')
def set_session():
session['username'] = 'itcast'
return 'set session ok'
读取
@app.route('/get_session')
def get_session():
username = session.get('username')
return 'get session username {}'.format(username)
拓展
session存在哪? 1.一般服务的session数据是在cookie处存储session的id号,然后通过id号到后端中查询session的具体数据。
为了安全,一般session数据都是存储在后端的数据库中
2.Flask session的默认存储方式是将整个数据加密后存储在cookie中,无后端存储
? django默认把session存在本地localsession,或者数据库表里。
3.将session的id存储在url中,例如:url?sid=sessionid,这是session id针对于无法存储cookie情况的做法。
为什么离不开secret_key? 因为flask浏览器session将session保存在浏览器中,别人可随意获取、修改,很不安全。为了增加安全性使用secret_key签名
推荐阅读
- python|Python入门
- Python操作Excel,能自动的绝不手动
- python|10个最好用的Python开发工具(IDE)
- Linux|给自己一首歌的时间学习来Linux基本开发工具
- COMP-533模型驱动
- C语言基础|【C语言趣味游戏】猜数字
- EECS 281项目开发
- C语言|【C语言】#define 定义常量和宏
- C语言拯救者|C语言拯救者 番外篇 (函数栈帧的创建和销毁讲解)