如何将对象加载到内存中以供整个django项目查看?

Luc*_*ang 6 python django

我假设它只会被加载到settings.py中,然后该对象将从设置中导入,但我只是想知道是否有更标准或推荐的方法来执行此操作.人们通常在哪里装载他们整个项目需要看到的物品?

防爆.

# settings.py
...
something_large = json.loads(...)


# whatever models.py, views.py, etc
from Project.settings import something_large  #Is this the proper way to do it?
Run Code Online (Sandbox Code Playgroud)

谢谢.

AKX*_*AKX 6

您可以将其加载data到应用程序中的模块中,以使其更清晰.

(我还展示了如何从模块所在的同一目录中加载文件.)

project/
   settings.py
   ...
myapp/
   __init__.py
   data.py
   huge_static_data.json
   models.py
   ...
Run Code Online (Sandbox Code Playgroud)

myapp/data.py:

with file(os.path.join(os.dirname(__file__), "huge_static_data.json")) as in_f:
  something_large = json.load(in_f)
Run Code Online (Sandbox Code Playgroud)

myapp/models.py:

from myapp.data import something_large
Run Code Online (Sandbox Code Playgroud)

Python的导入系统确保在首次导入模块时只加载一次数据.