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

admin 2020年9月1日22:08:47评论185 views字数 1756阅读5分51秒阅读模式
对于初学者,每当键入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 = FalseALLOWED_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请求。

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2020年9月1日22:08:47
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   如何在Django中设置特定环境的配置?http://cn-sec.com/archives/112869.html

发表评论

匿名网友 填写信息