在Django中存储常量的最佳方法

7

我有一个Django应用程序并使用GitHub进行CI。现在我遇到了一个问题,每次合并时都会出现常量导入的合并冲突。其他开发人员经常导入常量,我也是如此。 目录树看起来像这样:

main_app > 
...main_app 
...api 
...aws_lambda 
...billing 
...utils 
...and many other directories

每个子应用程序都有自己的常量文件constants.py。导入常量的方式如下所示:
from utils.constants import const1, const2, const3, const4 
from billing.constants import const5, const6

我需要如何重写这些导入以减少未来的合并冲突? 除了下面的方法,还有更好的方法吗?
import utils.constants as utils_const
import billing.constants as billing_const
...
var = utils_const.const1

什么是在Django应用程序中存储常量的最佳实践?
3个回答

20

对于只在一个模块中使用的常量,只需在该模块中定义它们。对于整个项目中使用的常量,惯例是将它们添加到您的设置文件中。对于在单个应用程序中始终使用的常量,我认为您每个应用程序都有一个constants.py的方法是可以的。


0

你也可以将它们放置在应用程序的__init__.py中,这样就少了一个要读取的文件!

然后使用如下:

# Many constants:
import utils

print(utils.const2, utils.const3, utils.const4)


# Single constant (as the code base grows, this may become tiresome)
from billing import const1

print(const1)

你也可以将它们放在apps.py中,因为该文件也会被加载,并且从语义上讲,它是用于配置应用程序的。


-2

如果在不同的Django项目中共享一些应用程序,则存在在设置中存储常量的问题。

在这种情况下,从我的角度来看,建议添加一个Constant应用程序。此外,您将获得配置Django管理的好处。


这将使所有应用程序紧密耦合在一起,你需要拥有可插拔的应用程序。 - run_the_race

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接