gpt4 book ai didi

python - 如何在 Flask 中为每个用户 session 维护一个类实例?

转载 作者:太空宇宙 更新时间:2023-11-03 14:12:33 24 4
gpt4 key购买 nike

我目前正在构建一个基于 Flask 框架的 Web 应用程序,当应用程序完成时,将来会有大约 10 个用户帐户。

有一个具有重型模块(计算密集型)的类,在此应用程序中构建和使用,作为经常使用的关键功能之一,我遇到了一些问题并正在寻求一些解决方案(让我们将其命名为如文件 Class A 中的 a.py )

最初,我导入了 Class A直接进入view之一文件,并创建了一个 route函数,一旦用户单击调用此 route 的按钮,route然后函数将创建 Class A 的实例,并且该实例基于接收到的数据(例如 Json)运行。但我发现系统会变慢,如 Class A 的实例当用户频繁使用该功能时,每次都必须创建(也可以有10个用户),并且Class A太重了,无法一次又一次地创建。

因此我想我是否可以创建 Class A 的实例仅一次(例如,Flask 应用程序启动时),并且每个登录用户都可以访问该实例,而不是一遍又一遍地创建它?

提前致谢

最佳答案

Flask 请求是无状态的,因此为了跨请求为用户保留数据,选项是有限的。以下是一些想法:

  1. 序列化类实例,将其存储在 Flask session 中(只是浏览器 session cookie 的包装器),稍后检索。

  2. 将其存储在数据库中,稍后需要时检索

  3. Pickle 它,使用用户名转储它,在需要时检索。

或者,根据应用程序,缓存解决方案可能足够好(ig Flask 缓存)。路由/ View 将在第一次调用时实例化该类并返回一个值。

如果使用相同的参数/数据再次调用 View ,则返回之前的返回值,而无需再次运行 View 函数。

关于python - 如何在 Flask 中为每个用户 session 维护一个类实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48394464/

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