在一台服务器上的Django。具有Web / dev数据库的Web和Dev环境

时间:2018-12-30 16:18:43

标签: django

几个月后,我将收到一台(物理)Ubuntu LTS服务器,以用于仅企业Intranet的Web工具站点。我一直在努力寻找一个可以使用的框架。在这一点上,我更喜欢使用Django。过去,我大量使用RoR,CF和PHP。

我现在对Django的关注是,当我只有一台服务器时,如何同时拥有一个单独的'/ web /'和'/ dev /'环境。当然,这还包括需要单独的“ web”和“ dev”数据库(按数据库名称分隔或在单个服务器上运行两个不同的数据库实例)。

选项1:我知道我只能在Ubuntu上设置“网络”(生产)环境,然后使用我的公司Windows笔记本电脑开发Django工具。我读过此书,但很多第三方Django程序包在Windows上无法正常运行。我的另一个担心是更改代码,然后推送到Ubuntu服务器,在那里我可能会引入本地Windows开发环境中未出现的问题。

选项2:以某种方式在同一服务器上设置了单独的Django“ web”和“ dev”环境。我已经看到了许多不同且令人困惑的信息。我还认为,在同一服务器上运行两个数据库实例的需求也增加了复杂性。或者,您怎么可能为'web'和'dev'使用两个不同的Django环境,并让它们根据名称指向不同的数据库表,而不是需要运行两个不同的数据库实例?

谢谢您的任何建议。我实际上在放松和学习Django时遇到了麻烦,不知道这将要处理多严重。如果过于复杂,我可以轻松地解决用基本PHP开发的痛苦。使用普通的PHP,仅通过检查URL或文件路径中的“ / web /”或“ / dev /”(然后指向),就拥有一个“ / web /”和“ / dev /”路径并分隔数据库是非常简单的。正确的数据库,例如-'mytool_dev_v1'/'mytool_web_v1')。

1 个答案:

答案 0 :(得分:0)

有多种方法可以解决此问题:

  1. 您可以在不同虚拟环境中的同一服务器中运行django的2个单独实例。您可以通过多种方式配置它们:使用环境变量或仅将“生产”和“开发”配置文件分开,然后选择要使用的配置文件。
  2. 您可以使用docker容器来服务不同的django实例。这是我认为的最好方法。您可以用相同的方式配置它们:通过环境变量或“ dev”和“ prod”选项的多个配置文件。

如果要在同一服务器中服务2个(或更多)站点,则可能需要配置nginx服务器,以将请求重定向到单独的容器或django实例,具体取决于域名或其他名称(例如,URL)。

据我所知,为每个实例配置单独的数据库没有问题。您还可以在容器中运行postgres或mysql实例。以相同的方式运行nginx。

我不建议您在运行生产应用程序的服务器上开发应用程序。我坚信开发必须在开发人员的计算机中进行,但是,是的... Windows并不是django开发的最佳选择,但大多数情况下都可以运行。否则,我建议您将Dualboot或至少将VirtualBox与Ubuntu一起使用。