我正在编写可重用的 Django 应用程序。将自己的设置添加到 settings.py
中的最佳做法是什么?我是否需要在每个设置前加上我的 app_name,或者我应该只做一个设置 dict。对于我的应用程序?
最佳答案
您应该尝试仅在涉及的包中定义应用程序设置,尤其是当您考虑使用可重用包时。坚持使用唯一的全局名称(实际上是哪些设置)始终是一个好主意。看看PEP-8 globals .
如果您要创建可重用包,最好先尝试从设置模块导入属性,看看用户是否用自己的常量覆盖了它。
例如
from django.conf import settings
MY_CONSTANT = getattr(settings, 'MY_CONSTANT', True)
def foo(*args, **kwargs):
if MY_CONSTANT:
return 'hello'
else:
return 'goodbye'
这样用户可以在他的设置模块中设置 MY_CONSTANT = False
这样应用程序将返回 'goodbye'
而不是默认的 'hello'
大多数包确实按照您的建议使用包名作为前缀,这里有几个例子:
关于python - Django 中的设置命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16134018/