python - Django 中的设置命名空间

标签 python django coding-style django-apps

我正在编写可重用的 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'

大多数包确实按照您的建议使用包名作为前缀,这里有几个例子:

FEINCMS , tastypie

关于python - Django 中的设置命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16134018/

相关文章:

c# - 在 c sharp 中广泛使用哈希表

python - 将距离矩阵转换为 Newick 格式

python - django 中原始 MySQL 查询的问题

python - Django url 中的多个 pks

android - 带有设备自定义模型的 Django 推送通知

sql - LINQ 查询 : SQL-style abbreviations or spell it out?

python - 在 Lua 中实现外部源代码块

Python 在代理服务器后面发送电子邮件

python - openpyxl (2.4.8) 风格背景问题;总是黑色

c# - Visual Studio C#-设置和 StyleCop(MS 源代码分析)