1

Django 应用程序将数据从文件加载到 Python 字典,对其进行处理并将其作为 http 响应发送。现在说在 Web 服务器上收到 n 个请求,然后这个 Django 应用程序将运行n时间并将数据从文件加载到 Python 字典n时间。我想知道是否可以以某种方式将这些数据仅加载到字典一次,同时n可以提供 http 响应。

问题情况的示例view.py文件如下:

from django.http import HttpResponse
from django.http import HttpRequest

def hello(request):
    data = open("abc").readlines()
    return HttpResponse(data[0])
4

3 回答 3

4

将字典绑定到全局名称将使其在 Django 项目运行期间持续存在。请注意,每个 Django 进程(一些 WSGI 容器,例如 mod_wsgi,可以为一个应用程序运行多个进程)将拥有自己独立的字典副本。

于 2012-08-17T03:02:03.427 回答
4

如果数据与用户相关,您可以使用 djanog 的会话框架跨请求持久化数据。如果需要在众多用户之间共享数据,可以使用缓存

于 2012-08-17T03:02:43.320 回答
3

这是Django Middleware的工作。将其添加到您的设置中,它将在您的请求中持续存在。它是一个比持久性更好的选择,而且绝对比使用全局对象好得多。

中间件是 Django 请求/响应处理的挂钩框架。这是一个轻量级的低级“插件”系统,用于全局更改 Django 的输入和/或输出。每个中间件组件负责做一些特定的功能。例如,Django 包含一个中间件组件 XViewMiddleware,它为 HEAD 请求的每个响应添加一个“X-View”HTTP 标头。

于 2012-08-17T03:50:36.583 回答