您通常如何在初始化期间从数据库加载和存储全局常量中的内容以进行缓存?全局常量以后不会再改变。您只是在加载期间进行数据库查询并将其放入常量中,还是使用某种延迟加载机制?
我想到的是全局范围内的代码,如下所示:
SPECIAL_USER_GROUP = Group.objects.get(name='very special users')
OTHER_THING_THAT_DOESNT_CHANGE = SomeDbEnum.objects.filter(is_enabled=True)
# several more items like this
我在使用空测试数据库运行测试时遇到了问题。一种选择是将所有需要的数据放在夹具中,但我想避免将每个单独的测试与他们不需要的不相关数据耦合。
以下会被认为是好的风格吗?
@memoize
def get_special_user_group():
return Group.objects.get(name='very special users')
还是首选通用的可重用机制?