Django应用程序将数据从文件加载到Python dict,处理它并将其作为http响应发送。现在说在Web服务器上收到n个请求,然后这个Django应用程序将运行n
次并将数据从文件加载到Python dict n
次。我想知道,如果可以提供n
http响应,我可以以某种方式将这些数据加载到dict中。
问题情况的示例view.py
文件可以如下:
from django.http import HttpResponse
from django.http import HttpRequest
def hello(request):
data = open("abc").readlines()
return HttpResponse(data[0])
答案 0 :(得分:4)
将字典绑定到全局名称将使其在Django项目运行时保持不变。请注意,每个Django进程(一些WSGI容器,例如mod_wsgi,可以为应用程序运行多个进程)将拥有自己的独立字典副本。
答案 1 :(得分:4)
如果数据与用户相关,您可以使用djanog的session framework在请求之间保留数据。如果需要在众多用户之间共享数据,则可以使用cache。
答案 2 :(得分:3)
这是Django Middleware的工作。将其添加到您的设置中,它将在您的请求中保留。它是一个更好的选择,然后是持久性,绝对比使用全局对象好很多。
中间件是Django请求/响应处理的钩子框架。它是一个轻巧的低级“插件”系统,用于全局改变Django的输入和/或输出。每个中间件组件负责执行某些特定功能。例如,Django包含一个中间件组件XViewMiddleware,它为每个对HEAD请求的响应添加“X-View”HTTP标头。