gpt4 book ai didi

python - ram 中的 django 变量

转载 作者:太空狗 更新时间:2023-10-30 01:29:56 27 4
gpt4 key购买 nike

我正在实现一个非常轻量级的 Web 项目,它只有一个页面,在图表中显示数据。我使用 Django 作为 Web 服务器,使用 d3.js 作为该图的绘图例程。可以想象,只有几个简单的时间序列必须由 Django 服务器响应,所以我想知道我是否可以简单地将这个变量保存在 ram 中。我的第一个测试是阳性的,我的 views.py 中有这样的东西:

X = np.array([123,23,1,32,123,1])

@csrf_exempt
def getGraph(request):
global X
return HttpResponse(json.dumps(X))

注意,X 不时被另一个函数更新,但所有用户访问权限都是只读的。我必须处理吗?

  1. 通过定义全局变量解决安全问题?
  2. 一般不一致?

我找到了 a thread讨论 Django 中的全局变量,但在那种情况下,困难在于处理多个写访问。

回答关于为什么我不想将数据存储在数据库中的潜在问题:我在 X 中获得的所有数据已经​​存储在一个巨大的远程数据库中,这个网络应用程序只需要显示数据.

最佳答案

将它存储在一个变量中确实对线程有影响(还有可扩展性——如果你有两个运行同一个应用程序的 Django 服务器怎么办?)。 Django 社区的建议是不要!

虽然这听起来很适合 Django 缓存系统。只需使用 @cache_page 缓存您的 getGraph View 即可完成工作。无需使用memcache,内置的内存内存缓存cache-backend* 就可以正常工作。将一个非常高的数字作为缓存的超时时间(年)。

这样您存储的是 HTTP 响应 (JSON) 而不是 X 的值。但是从您的代码示例来看,这不是问题。如果需要重新计算 X,则需要重新计算 JSON,如果需要重新计算 JSON,则需要重新计算 X。

https://docs.djangoproject.com/en/dev/topics/cache/?from=olddocs/


1 或者只是“内置内存后端”,我无法抗拒

关于python - ram 中的 django 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11949741/

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