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

时间:2013-07-23 22:01:42

标签: 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?

感谢。

1 个答案:

答案 0 :(得分:6)

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

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

project/
   settings.py
   ...
myapp/
   __init__.py
   data.py
   huge_static_data.json
   models.py
   ...

myapp/data.py

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

myapp/models.py

from myapp.data import something_large

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