cookie和session实际和django中的用法差不多,他们的作用都是用来和服务器保持联系的,因为http是短连接。
cookie
cookie的设置在response中。
res = response('返回的信息')
res.set_cookie('key','value')
return res
其中set_cookie(key,value,max-age,expirs,path,domain)
max_age:为过期时间,单位是秒
expirs: 也是过期时间,是时间戳 (如果两个都设置,以max_age为准)
path:当前主域名
domain:当前子域名
删除cookie
res.delete_cookie('key')
session
flask中的session可以是基于一个flask-session使用。
使用放法。
pip install flask-session
他支持将session保存到多种数据库中。
redis ,memcached,mongodb , 或者sqlalchmey
以redis为例子
import redis
from flask import Flask, session
from flask_session import Session
app = Flask(__name__)
app.debug = True
app.secret_key = 'xxxx'
app.config['SESSION_TYPE'] = 'redis' # session类型为redis
app.config['SESSION_PERMANENT'] = False # 如果设置为True,则关闭浏览器session就失效。
app.config['SESSION_USE_SIGNER'] = False # 是否对发送到浏览器上session的cookie值进行加密
app.config['SESSION_KEY_PREFIX'] = 'session:' # 保存到session中的值的前缀
app.config['SESSION_REDIS'] = redis.Redis(host='127.0.0.1', port='6379', password='123123') # 用于连接redis的配置
Session(app)
@app.route('/index')
def index():
session['k1'] = 'v1'
return 'xx'
if __name__ == '__main__':
app.run()