如何在Django Framework中设置特定环境的配置?

对于初学者,每当键入python manage.py runserver时,它将从settings.py中获取所有配置。 settings.py具有所有配置,例如已安装的应用程序,使用的中间件,模板,语言,时区,静态文件夹的位置等。通常,我们刚开始不必太多修改settings.py文件。因为Django框架提供了在本地环境中运行应用程序的样板或基本配置。

 

为什么我们需要特定于环境的设置?

我们settings.py中有某些配置,例如DEBUG,STATIC_URL,DATABASES,SECRET_KEY,ALLOWED_HOSTS等。这些设置实际上是在部署到生产环境时需要注意的设置。每当我们的应用程序上线时,都不应在浏览器中显示调试日志或错误消息。这将使应用程序容易受到攻击。另外,我们可能会放置密钥。

 

由于这些原因,我们需要特定于环境的设置。在本教程中,我将为本地,开发和生产环境创建不同的设置。基本上,本教程将涵盖以下内容:

 

1、将基本设置创建为base.py,这是本地环境的默认设置。

2、为开发环境创建一个development.py

3、创建production.py作为生产环境的设置

之后,我将显示命令以根据不同环境选择特定设置。

 

步骤1:将settings.py重命名为settings_backup.py

首先重命名settings.py文件。由于我们尝试为不同的环境创建多个设置,因此我们不需要settings.py。重命名,但不要立即删除。我们将需要所有其他设置文件中的内容。

 

第2步:创建目录“设置”

在最初存在settings.py的项目目录内,创建一个名为“ settings”的文件夹。

 

步骤3:在设置目录中创建__init__.py

在这里,我们将调用所有三个设置文件及其配置。在__init__.py文件中添加以下代码:

from .base import *

 

from .development import *

 

from .production import *

 

步骤4:为本地,开发和生产环境创建三个设置文件。

在设置内部,文件夹创建三个文件,分别名为base.py,development.py和production.py。 在base.py中,复制settings.py文件的内容。 我们需要在base.py中进行简单的修改。

 

最初,在BASE_DIR配置中提到settings.py的基本目录,如下所示:

# Build paths inside the project like this: os.path.join(BASE_DIR, …)BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

 

现在,我们已经创建了一个文件夹并将所有设置文件添加到该文件夹中,我们需要将基本目录指向下一级。 即我们需要在BASE_DIR中添加os.path.dirname(),如下所示:

# Build paths inside the project like this: os.path.join(BASE_DIR, …)BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

 

步骤5:在任何设置文件中进行一些配置更改

现在,我们已经为特定环境制作了文件,让我们进行一些修改以查看更改是否得到反映。 在production.py中,修改以下设置:

DEBUG = False
ALLOWED_HOSTS = [‘0.0.0.0’, ‘127.0.0.1’]

步骤6:从命令行运行项目

更改production.py中的配置后,使用以下命令从终端运行项目:

python manage.py runserver –settings=projectname.settings.production

 

用我们实际项目名称重命名项目名称,然后运行代码。 现在,只要在应用程序中遇到任何错误,它都不会显示错误日志。 这是因为在生产环境的设置中禁用了调试模式。 另外,如果我们没有将127.0.0.1添加为允许的主机,那么尽管程序正在运行,但该项目不会接受任何Web请求。

 

原文:https://thequickblog.com/how-to-configure-environment-specific-settings-in-python-django-framework/