gpt4 book ai didi

python - 关于 Flask session 的一些问题

转载 作者:太空狗 更新时间:2023-10-30 02:09:54 24 4
gpt4 key购买 nike

考虑以下简单的 flask 应用程序:

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()

这是我的问题:

  1. 访问“enter_string”端点并且用户已将字符串分配给session["string"] 后,该字符串存储在哪里?它是在服务器的内存中还是在用户的内存中?
  2. 默认情况下, session 在浏览器退出时过期。有没有一种简单的方法可以让一些其他事件触发 session 到期,例如关闭窗口但不一定关闭浏览器?
  3. 默认情况下, session 会一直超时还是会一直保留到浏览器退出为止,无论这需要多长时间?

最佳答案

Flask 中的 session 可以用不同的方式实现。默认实现基于安全 cookie(具有防止篡改的加密签名的 cookie)。以下是您针对此实现提出的问题的答案:

  1. 该字符串将存储在客户端 cookie 中。每次浏览器向服务器发送请求时,cookie 都会随之发送。

  2. 客户端可以通过使用 Javascript 删除 cookie 来破坏 session 。 ( session cookie 的默认名称是 session)。服务器可以通过从 session 中删除所有项目来删除 session 。

  3. 在默认实现中,cookie 的过期日期设置为 future 31 天。这可以通过 PERMANENT_SESSION_LIFETIME 配置设置进行更改。

正如我上面提到的,Flask 支持第三方 session 处理程序,因此上述答案可能不适用于其他实现。特别是,有实现服务器端 session 的处理程序(例如 Flask-Session 或 Flask-KVSession),它们将 session 数据存储在服务器而不是客户端。

关于python - 关于 Flask session 的一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33113270/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com