你能在 Django 中存储一个常量全局对象吗?
Can you store a constant global object in Django?
我正在开发一个使用地理空间数据的小网页。我在 Python 中使用 GeoPandas 和 Shapely 进行了初步分析,我正尝试以此构建网页。问题是,在使用 Django 时,我似乎找不到将形状文件存储为常量对象的方法。每次请求对 shapefile 进行操作时,我都需要从源加载数据。这大约需要 6 秒,而标准数据帧深度复制 df.copy()
只需几分之一秒。有没有一种方法可以在 Django 中存储一个数据框,它可以被视图访问和深度复制而无需重新读取 shapefile?
由于 Django 的性质,全局变量并不能很好地工作。我用两种不同的方式解决了这个问题。第一个是只使用 django 会话。这样,您想要全局存储的对象现在只需要在您网站的每个会话中加载一次。第二个也是更有效的选择是使用缓存服务器,Redis 或 memcached。这将允许您在所有会话中非常快速地存储和获取对象,并将最大程度地提高性能。
我正在开发一个使用地理空间数据的小网页。我在 Python 中使用 GeoPandas 和 Shapely 进行了初步分析,我正尝试以此构建网页。问题是,在使用 Django 时,我似乎找不到将形状文件存储为常量对象的方法。每次请求对 shapefile 进行操作时,我都需要从源加载数据。这大约需要 6 秒,而标准数据帧深度复制 df.copy()
只需几分之一秒。有没有一种方法可以在 Django 中存储一个数据框,它可以被视图访问和深度复制而无需重新读取 shapefile?
由于 Django 的性质,全局变量并不能很好地工作。我用两种不同的方式解决了这个问题。第一个是只使用 django 会话。这样,您想要全局存储的对象现在只需要在您网站的每个会话中加载一次。第二个也是更有效的选择是使用缓存服务器,Redis 或 memcached。这将允许您在所有会话中非常快速地存储和获取对象,并将最大程度地提高性能。