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

The best way to store constants in Django

我有一个 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 应用程序中存储常量的最佳做法是什么?

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

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

在这种情况下,从我的角度来看,建议添加一个常量应用程序。此外,您还将在配置方面受益于 django admin

您也可以将它们放在应用程序的 __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 中,因为无论如何也会加载该文件,并且在语义上它用于配置应用程序。