[英]Some questions about Flask sessions
考虑以下简单的烧瓶应用:
from flask import Flask, request, session
application = Flask(__name__)
application.secret_key = "some_random_string"
@application.route("/enter_string")
def start_session():
session["string"] = request.args["string"]
@application.route("/get_string")
def continue_session():
if "string" not in session:
return "Give me a string first!"
return "You entered " + session["string"]
if __name__ == "__main__":
application.debug = True
application.run()
这是我的问题:
session["string"]
,那么字符串存储在哪里? 它是在服务器的内存还是用户的内存中? Flask中的会话可以以不同的方式实现。 默认实现基于安全cookie(具有加密签名以防止篡改的cookie)。 以下是您对此实施的问题的答案:
该字符串将存储在客户端cookie中。 每次浏览器向服务器发送请求时,cookie都将随之发送。
客户端可以通过使用Javascript删除cookie来销毁会话。 (会话cookie的默认名称是session
)。 服务器可以通过删除会话中的所有项目来删除会话。
在默认实现中,cookie具有将来31天设置的到期日期。 可以使用PERMANENT_SESSION_LIFETIME
配置设置更改此设置。
如上所述,Flask支持第三方会话处理程序,因此上述答案可能不适用于其他实现。 特别是,有一些处理程序可以实现服务器端会话(例如Flask-Session或Flask-KVSession),它们将会话数据存储在服务器而不是客户端。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.