flask框架中的cookie和session使用

1. Flask框架中的Cookie

Cookie是一种存储在用户计算机上的小型文本文件,用于存储有关用户的信息。在Flask框架中,可以使用cookies模块来处理Cookie。

1.1 设置Cookie

要设置Cookie,需要使用response对象的set_cookie()方法。该方法接受以下参数:

key:Cookie的名称

value:Cookie的值

max_age:Cookie的生命周期,单位为秒

expires:Cookie的过期日期,格式为时间戳

path:Cookie的路径,默认为根目录

domain:Cookie的域名,默认为当前域名

secure:指定是否只能通过HTTPS协议传输Cookie,默认为False

httponly:指定是否只能通过HTTP协议访问Cookie,默认为False

示例代码:

from flask import Flask, make_response

app = Flask(__name__)

@app.route('/')

def set_cookie():

response = make_response('Setting cookie')

response.set_cookie('username', 'John')

return response

在上述代码中,当用户访问根URL时,会收到一个包含名为username、值为John的Cookie。

1.2 获取Cookie

要获取Cookie,可以使用request对象的cookies属性。该属性返回一个字典,包含了所有的Cookie。

示例代码:

from flask import Flask, request

app = Flask(__name__)

@app.route('/')

def get_cookie():

username = request.cookies.get('username')

return f"Username: {username}"

上述代码中,当用户访问根URL时,会返回用户名。

1.3 删除Cookie

要删除Cookie,可以使用response对象的delete_cookie()方法。

示例代码:

from flask import Flask, make_response

app = Flask(__name__)

@app.route('/')

def delete_cookie():

response = make_response('Deleting cookie')

response.delete_cookie('username')

return response

在上述代码中,当用户访问根URL时,会删除名为username的Cookie。

2. Flask框架中的Session

Session是一种服务器端存储用户会话数据的机制。在Flask框架中,可以使用session对象来处理Session。

2.1 开启Session支持

要开启Session支持,需要设置应用程序的secret_key,该密钥用于加密Session数据。

示例代码:

from flask import Flask, session

app = Flask(__name__)

app.config['SECRET_KEY'] = 'your_secret_key'

2.2 设置Session数据

要设置Session数据,可以直接在session对象上进行操作,类似于操作字典。

示例代码:

from flask import Flask, session

app = Flask(__name__)

app.config['SECRET_KEY'] = 'your_secret_key'

@app.route('/')

def set_session():

session['username'] = 'John'

return 'Setting session'

在上述代码中,当用户访问根URL时,会设置一个名为username、值为John的Session。

2.3 获取Session数据

要获取Session数据,可以直接在session对象上进行操作,类似于操作字典。

示例代码:

from flask import Flask, session

app = Flask(__name__)

app.config['SECRET_KEY'] = 'your_secret_key'

@app.route('/')

def get_session():

username = session.get('username')

return f"Username: {username}"

在上述代码中,当用户访问根URL时,会返回用户名。

2.4 删除Session数据

要删除Session数据,可以使用session对象的pop()方法。

示例代码:

from flask import Flask, session

app = Flask(__name__)

app.config['SECRET_KEY'] = 'your_secret_key'

@app.route('/')

def delete_session():

session.pop('username', None)

return 'Deleting session'

在上述代码中,当用户访问根URL时,会删除名为username的Session。

总结

在Flask框架中,可以使用Cookie和Session来处理用户会话数据。Cookie适用于存储少量的不敏感信息,而Session适用于存储大量的敏感信息。使用Cookie和Session可以实现用户身份认证、数据保持等功能。

后端开发标签