Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django-如何在应用程序中共享配置常量?_Python_Django_Coding Style_Constants - Fatal编程技术网

Python Django-如何在应用程序中共享配置常量?

Python Django-如何在应用程序中共享配置常量?,python,django,coding-style,constants,Python,Django,Coding Style,Constants,在django应用程序中的各种代码文件之间共享某些常量有时是有益的 示例: -各种模块\命令等中使用的转储文件的名称或位置 -整个应用程序的调试模式打开\关闭 -特定于站点的配置 做这件事的优雅\python方法是什么?创建一个配置模块 Configuration.py:(在项目/应用程序源目录中) 从其他源文件导入它: from Configuration import MYCONST1,MYCONST2 ... 已经有一个项目范围的settings.py文件。这是放置您自己的自定义设置的最

在django应用程序中的各种代码文件之间共享某些常量有时是有益的

示例:
-各种模块\命令等中使用的转储文件的名称或位置
-整个应用程序的调试模式打开\关闭
-特定于站点的配置


做这件事的优雅\python方法是什么?

创建一个配置模块

Configuration.py:(在项目/应用程序源目录中)

从其他源文件导入它:

from Configuration import MYCONST1,MYCONST2
...

已经有一个项目范围的
settings.py
文件。这是放置您自己的自定义设置的最佳位置。

您可以在设置中提供设置

MY_SETTING = 'value'
在任何模块中,您都可以像

from django.conf import settings
settings.MY_SETTING

Django应用程序(或多或少)是可插拔的。因此,你不应该为了参数化你想要的东西而侵入应用程序的代码(如果你不得不这么做的话,那将是一团糟!想象一下你想升级你在互联网上下载的应用程序……你必须重新侵入新版本的代码?!?)


因此,您不应该在应用程序级别添加应用程序级别的设置,而应该将它们放在项目范围内的某个位置
settings.py

事实上,这就是我特别询问应用程序的原因scope@Jonathan:您正在查找特定于应用程序的设置文件吗?以后可以在项目设置文件中覆盖的内容?@Jonathan,您可以/应该将特定于应用程序的设置放在settings.py中,最终项目是在服务器上运行的,而不是应用程序本身
from django.conf import settings
settings.MY_SETTING