Flask 第十三话之cookies和session
COOKIES使用方法:
一、基本参数
1.key:cookie键
2.value="":cookie值
3.max_age=None:设置多少秒后的过期时间(单位:秒) (IE8以下的浏览器不支持)
max_age=60
4.expires=None:设置指定过期时间,这个使用的是格林尼治时间相对于北京时间少8小时(新版本http协议中被废弃)
from datetime import datetime,timedelta # 设置31天后过期 expire = datetime.now() + timedelta(days=30,hours=16) expires = expire
5.domain=None:设置子域名存储cookie
domain='.hy.com'
二、设置cookie
@app.route('/set_cookies') def set_cookies(): response = Response('set_cookie') response.set_cookie('pwd', '123456') return response
三、获取cookie
@app.route('/get_cookies') def get_cookies(): response= request.cookies.get('pwd') return response
四、删除cookie
@app.route('/del_cookies') def del_cookies(): response = Response('删除cookie') response.delete_cookie('pwd') return response
五、子域名设置
1.app.config:设置域名
SERVER_NAME ='hy.com:5000'
2.设置cookie
@app.route('/set_cookies') def set_cookies(): response = Response('set_cookie') response.set_cookie('pwd', '123456',domain='.hy.com') return response
3.获取cookie:子域名cms.hy.com
@app.route('/',subdomain='cms') def cms(): passwd = request.cookies.get('passwd') return passwd or "没有获取到cookie"
SESSION使用方法:
一、设置session
1.导入session:from flask import Flask,session
2.一定要记得设置app.config['SECRET_KEY']得值,也就是session密钥
3.设置session:session['username'] = 'lee'
from flask import Flask,session import os from datetime import timedelta app = Flask(__name__) # 设置SECRET_KEY为一个24位得随机数 app.config['SECRET_KEY'] = os.urandom(24) # 设置SESSION指定过期时间 app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(hours=2) @app.route('/') def set_session(): session['username'] = 'lee' # 设置过期时间 # 1.默认31天 # 2.如果设置app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(hours=2) 则再两小时后失效 session.permanent = True return '首页'
二、获取session
@app.route('/get_session/') def get_session(): username = session.get('username') print(username) return username or '没有这个session'
三、删除session
@app.route('/del_session/') def del_session(): # 删除指定key值得session # session.pop('username') # 删除所有session session.clear() return '删除成功'