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

发布于 2024-09-09 08:42:47 字数 158 浏览 5 评论 0原文

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

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

执行此操作的优雅\Pythonic 方式是什么?

It is sometimes beneficial to share certain constants between various code files in a django application.

Examples:
- Name or location of dump file used in various modules\commands etc
- Debug mode on\off for the entire app
- Site specific configuration

What would be the elegant\pythonic way of doing this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

用心笑 2024-09-16 08:42:47

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

There's already a project-wide settings.py file. This is the perfect place to put your own custom setttings.

久夏青 2024-09-16 08:42:47

您可以在 settings.py 中提供设置,就像

MY_SETTING = 'value'

在任何模块中您可以像这样获取它

from django.conf import settings
settings.MY_SETTING

you can provide settings in your settings.py like

MY_SETTING = 'value'

and in any module you can fetch it like

from django.conf import settings
settings.MY_SETTING
太阳哥哥 2024-09-16 08:42:47

创建配置模块。

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

MYCONST1 = 1
MYCONST2 = "rabbit"

从其他源文件导入它:

from Configuration import MYCONST1,MYCONST2
...

Create a configuration module.

Configuration.py: (in your project/app source directory)

MYCONST1 = 1
MYCONST2 = "rabbit"

Import it from other source files:

from Configuration import MYCONST1,MYCONST2
...
眼藏柔 2024-09-16 08:42:47

Django 应用程序应该(或多或少)可插入。因此,您不应该侵入应用程序的代码来参数化您想要的内容(如果您必须这样做,那将是一团糟!想象一下您想要升级您在互联网上下载的应用程序......您必须重新破解新版本的代码?!?)。

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

Django apps are meant to be (more or less) pluggable. Therefore, you are not supposed to hack into the code of an app in order to parametrize what you want (it would be quite a mess if you had to do this ! Imagine you want to upgrade an app you downloaded on internet... you would have to re-hack into the code of the new version ?!?).

For this reason you shouldn't add app-level settings at the app level, but rather put them together somewhere in your project-wide settings.py.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文