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 '删除成功'
原文地址:https://www.cnblogs.com/lee-xingxing/p/12447039.html