当前位置: 首页 > 面试题库 >

Django:如何管理开发和生产设置?

锺离昂然
2023-03-14
问题内容

我一直在开发一个基本的应用程序。现在在部署阶段,很明显,我需要本地设置和生产设置。

很高兴知道以下内容:

  • 如何最好地应对开发和生产设置。
  • 如何仅在开发环境中保留django-debug-toolbar之类的应用程序。
  • 开发和部署设置的其他任何技巧和最佳做法。

问题答案:

该DJANGO_SETTINGS_MODULE环境变量,其设置文件Django的控件将加载。

因此,你将为各自的环境创建单独的配置文件(请注意,它们当然可以import *来自单独的“共享设置”文件),并用于DJANGO_SETTINGS_MODULE控制使用哪个文件。

就是这样:

如Django文档中所述:

DJANGO_SETTINGS_MODULE的值应采用Python路径语法,例如mysite.settings。请注意,设置模块应位于Python导入搜索路径上。

所以,让我们假设你创建myapp/production_settings.pymyapp/test_settings.py在源存储库。

在这种情况下,你将分别设置DJANGO_SETTINGS_MODULE=myapp.production_settings使用前者和DJANGO_SETTINGS_MODULE=myapp.test_settings后者。

从此开始,问题归结为设置DJANGO_SETTINGS_MODULE环境变量。

设置DJANGO_SETTINGS_MODULE使用脚本或shell

然后,你可以使用引导脚本或流程管理器来加载正确的设置(通过设置环境),或者仅在启动Django:之前从你的Shell中运行它export DJANGO_SETTINGS_MODULE=myapp.production_settings

请注意,你可以随时从Shell运行此导出-它不需要存在于你的.bashrc容器中。

DJANGO_SETTINGS_MODULE使用流程管理器进行设置

如果你不喜欢编写用于设置环境的引导脚本(并且有很好的理由!),我建议你使用流程管理器:

  • 通过Supervisor,你可以使用程序的environment配置密钥将环境变量传递给托管进程。
  • Honcho(与Ruby的Foreman完全相同的Python)可让你在“ environment”(.env)文件中定义环境变量。
    最后,请注意,你可以利用PYTHONPATH变量将设置存储在完全不同的位置(例如,在生产服务器上,将其存储在中/etc/)。这允许将配置与应用程序文件分开。你可能想要或不想要它,这取决于你的应用程序的结构。


 类似资料:
  • 问题内容: 建议处理本地开发和生产服务器设置的建议方式是什么?它们中的某些(例如常量等)可以在两者中进行更改/访问,但是其中一些(例如静态文件的路径)需要保持不同,因此,每次部署新代码时都不应覆盖它们。 当前,我将所有常量添加到中settings.py。但是每次我在本地更改某些常量时,都必须将其复制到生产服务器并编辑文件以进行生产特定更改… :( 编辑:这个问题似乎没有标准答案,我已经接受了最受欢

  • 问题内容: 建议处理本地开发和生产服务器设置的建议方式是什么?它们中的某些(例如常量等)可以在两者中进行更改/访问,但是其中一些(例如静态文件的路径)需要保持不同,因此,每次部署新代码时都不应覆盖它们。 当前,我将所有常量添加到中。但是每次我在本地更改某些常量时,都必须将其复制到生产服务器并编辑文件以进行生产特定更改… :( 编辑:这个问题似乎没有标准答案,我已经接受了最受欢迎的方法。 问题答案:

  • 我怎样才能完成这件事呢?

  • 问题内容: 我有一个GlassFish / j2ee应用程序,我在一个盒子上进行开发,而生产是一个远程盒子。我有一个制作文件的功能,根据我的开发箱或生产环境,我需要文件的位置不同。什么是自动切换方式,所以我不必根据部署源文件来编辑源文件? 问题答案: 最简单的方法是定义一个系统属性,该属性指定数据的文件系统位置。生产应用服务器将定义一个值(在启动脚本中使用),而开发应用服务器将定义另一个值。您的应

  • 问题内容: 用于express.js环境。有什么建议? 问题答案: 在运行您的应用之前,您可以在控制台中执行此操作, 或者,如果您在Windows中,则可以尝试以下操作: 或者您可以这样运行您的应用程序: 您也可以在js文件中进行设置: 但是我不建议在运行时文件中执行此操作,因为在服务器中打开VIM并将其更改为生产环境并不容易。您可以在目录中创建config.json文件,并且每次您的应用运行时,

  • 管理开发时间,需要维护一个简明且实时更新的计划。一个工程计划是一个估计,一个时间表,一系列取得进步的里程碑,还有对你的团队或者你的时间在每个任务的估计和安排。这也应该包括你需要记得去做的其他事,比如与质量保障人员见面,准备文档,或者订购设备。如果你在一个团队里,工程计划会是一个共同承认的协议,不论是在开始,还是进行的过程中。 工程计划存在的意义是帮助做出决定,而非展示你是如何组织的。如果一个工程计