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

标签 python class flask

我目前正在构建一个基于 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/

相关文章:

python - 如何在一定时间内运行代码?

jquery - Django 。 ajax调用后数量不会增加

json - 如何在jsp页面中创建JSON对象

C++ 输出对象中的所有成员

python - Flask Web 服务器在处理和上传到 S3 时损坏图像

python - 查找组成字符串的重复子串(如果存在)

python - django一次提交表单多次输入相同的名称

Python调用类函数作为其他类属性

python - 将 AngularJS 网站转换为 Flask

python - Flask-sqlalchemy - 用户查询 'BaseQuery' 对象没有属性 'password'