zl程序教程

您现在的位置是:首页 >  前端

当前栏目

Flask框架中Cookie与Session用法详解

框架Cookie 详解 用法 session Flask
2023-09-11 14:15:14 时间

1、Cookie

1.1 设置cookie

from flask import Flask, make_response

app = Flask(__name__)

@app.route('/cookie')
def set_cookie():
    resp = make_response('set cookie ok')
    resp.set_cookie('username', 'itcast')
    return resp

1.2 设置cookie有效期

from flask import Flask, make_response

app = Flask(__name__)


@app.route('/cookie')
def set_cookie():
    response = make_response('hello world')
    response.set_cookie('username', 'itheima', max_age=3600)
    return response


if __name__ == '__main__':
    app.run()

1.3 读取cookie值

from flask import Flask, request

app = Flask(__name__)


@app.route('/get_cookie')
def get_cookie():
    resp = request.cookies.get('username')
    return resp


if __name__ == '__main__':
    app.run()

1.4 删除cookie值

from flask import Flask, make_response

app = Flask(__name__)


@app.route('/delete_cookie')
def delete_cookie():
    response = make_response('hello world')
    response.delete_cookie('username')
    return response


if __name__ == '__main__':
    app.run()

1.5 cookie值连同render_template共同使用

示例代码:

from flask import Flask, request, make_response, render_template

app = Flask(__name__)


@app.route('/')
def index():
    resp = request.cookies.get('user_name')
    if resp:
        return f'欢迎来到首页,我的cookie值为:{resp}'
    return '欢迎来到首页!!!'


@app.route('/login')
def login():
    response = make_response(render_template('login.html'))  # render_template()可以正常传递参数
    response.set_cookie('user_name', 'zhangsan', max_age=3600)
    return response


if __name__ == '__main__':
    app.run()

运行效果:

2、Session

2.1 设置session值

需要先设置SECRET_KEY,否则程序会报错的

class DefaultConfig(object):
    SECRET_KEY = 'fih9fh9eh9gh2'

app.config.from_object(DefaultConfig)

或者直接设置
app.secret_key='xihwidfw9efw'

设置session值:

from flask import Flask, session

app = Flask(__name__)

# class DefaultConfig(object):
#     SECRET_KEY = 'fih9fh9eh9gh2'
#
#
# app.config.from_object(DefaultConfig)

#  或者直接设置
app.secret_key = 'xihwidfw9efw'


@app.route('/set_session')
def set_session():
    session['username'] = 'itcast'
    return 'set session ok'


if __name__ == '__main__':
    app.run()

2.2 读取session值

from flask import Flask, session

app = Flask(__name__)

# class DefaultConfig(object):
#     SECRET_KEY = 'fih9fh9eh9gh2'
#
#
# app.config.from_object(DefaultConfig)

#  或者直接设置
app.secret_key = 'xihwidfw9efw'


@app.route('/get_session')
def get_session():
    username = session.get('username')
    return 'get session username {}'.format(username)


if __name__ == '__main__':
    app.run()

2.3 思考

flask将session数据保存到了哪里?