Flask中设置cookie可以通过make_response
函数来实现。下面是具体的步骤:
步骤一:导入Flask和make_response
from flask import Flask, make_response
步骤二:创建Flask app并定义路由
这里我们创建了一个hello函数,并将其绑定在URL路径为/的路由中。
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello World!'
步骤三:使用make_response设置cookie
make_response
函数将视图函数返回的字符串转化为一个响应对象。我们可以在响应对象上对cookie进行设置,然后将响应对象返回。
在下面的示例中,我们创建了一个名为'username'的cookie,并将其值设置为'user1'。注意,cookie值必须是字符串类型。
@app.route('/')
def hello():
resp = make_response('Hello World!')
resp.set_cookie('username', 'user1')
return resp
示例一:设置cookie的过期时间
我们可以通过max_age
和expires
参数来设置cookie的过期时间。其中,max_age值为秒数,表示从cookie被设置时开始的秒数。expires值为UTC时间字符串格式,表示cookie过期的时间。
下面的示例中,我们设置了一个名为'username2'的cookie,并将其值设置为'user2'。该cookie的过期时间为3600秒。
from datetime import datetime, timedelta
@app.route('/')
def hello():
resp = make_response('Hello World!')
expires = datetime.now() + timedelta(seconds=3600)
resp.set_cookie('username2', 'user2', expires=expires)
return resp
示例二:对cookie进行加密
我们可以通过itsdangerous
库的JSONWebSignatureSerializer
函数来对cookie进行加密。加密后的cookie值变得难以被伪造,更加安全。
下面的示例中,我们创建了一个名为'username3'的cookie,并将其值设置为'user3'。然后,我们使用JSONWebSignatureSerializer
函数对cookie进行加密,加密密钥为'secret_key'。最终将加密后的cookie值设置回响应对象并返回。
from itsdangerous import JSONWebSignatureSerializer
@app.route('/')
def hello():
resp = make_response('Hello World!')
serializer = JSONWebSignatureSerializer('secret_key')
cookie_value = {'username3': 'user3'}
encrypted_cookie = serializer.dumps(cookie_value)
resp.set_cookie('username3', encrypted_cookie)
return resp
以上就是在Flask中设置cookie的两个示例。在实际应用中,我们可以根据需求来选择使用哪种方式进行cookie设置。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:flask设置cookie - Python技术站