在Django应用程序中,我具有以下结构:
app_name
- const.py
- models.py
- forms.py
- views.py
在const.py
中保留常数,并将import
保留在其他3个文件中。
我有一些variables
通常是从数据库(使用QuerySet)获得的,但是此变量的更改频率不是很高(几个月)。
我想将此变量作为常量添加到const
中,并且仅在更改时(从admin
起)更新此变量值。
我想这样做,因为每次调用models/forms/views
时都要多做1-3个查询集。
如果我将它们添加到const
中,则会在import
的每个const.py
上执行数据库查询集,因此在这种情况下,我只是将它们从views/models/forms
移到了{{ 1}}。
所以我需要一种记忆,可以是跨文件/模块。
我知道如何进行基本记忆,但是它仅在模块内部有效。
答案 0 :(得分:1)
第一个基本答案:
您可以在项目本身上使用-const.py并轻松导入
project_name
app_name
- models.py
- forms.py
- views.py
- const.py
更复杂的答案:
添加模型Constant
并使用Redis的ID缓存此表,该表具有可用于缓存的最长ttl
由于许多原因,我不希望任何内容都基于文件
有关使用Redis进行缓存的更多信息,请在real python上查看