简短问题1
什么构成了Django's documentation中定义的生产环境约1/2的方式?
简短问题2
如果有多个人同时访问数据库,是否存在管理界面损坏数据库的任何文档?
背景
我使用Django作为PostgreSQL服务器的ORM。由于应用程序的主要用途是ORM,因此它在客户端计算机上运行以与远程服务器通信。到目前为止,为了访问管理Web界面,我运行python manage.py runserver
,在我的本地主机(127.0.0.1:8000)上托管一个小型Web服务器来访问它。
除了我需要修复数据条目或查找内容之外,这种方法一直有效,我必须在安装/运行应用程序的机器上。我对此的解决方法是从Ubuntu服务器启动应用程序的管理界面并为其提供真实的IP地址。请注意,真实IP地址位于我们的本地Intranet上,位于防火墙后面。我测试了两个人没有问题的同时访问,看到没有错误我通过Ubuntu的Upstart将这个python进程添加为系统进程。
长期目标是安装Apache和Mod_WSGI来托管应用程序。然而,如此庞大的团队(任何时候都有3人),是否有必要经历麻烦?请注意,如果我们向外界打开这个问题,那么问题就变得没有实际意义,Apache也是必须的。
答案 0 :(得分:2)
如果您没有使用开发服务器来开发django项目,那对我来说听起来就像生产一样。使用Apache和mod WSGI部署您的应用程序值得麻烦吗?这取决于你,但Django开发人员的建议非常明确。
请勿在生产设置中使用此服务器。它没有经过安全审核或性能测试。 (以及它将如何保留。我们从事制作Web框架的业务,而不是Web服务器,因此改进此服务器以便能够处理生产环境超出了Django的。)
对于您的第二个问题,我不确定您的意思是什么?已损坏'。如果两个用户同时更改同一个对象,则第二个要保存的用户可能会无意中还原第一个用户的更改:
考虑两个用户编辑相同的Person
。第一个用户更改名字,然后第二个用户更改第二个名称。由于第二个用户在第一个用户保存之前加载了更改页面,因此第一个名称将更改回Joe。
| Description | First Name | Second Name |
=============================================
| initial value | Joe | Smith |
| first user | Joseph | Smith |
| second user | Joe | Bloggs |
=============================================
答案 1 :(得分:0)
你是在谈论由于两个独立的django实例在同一个数据库上运行而发生的腐败吗?如果是这种情况,我肯定会发现数据损坏的可能性,因为Django的ORM API和Forms API并不是以这种方式分发的。
至于“生产”服务器的定义。我的理解是开发服务器的设计不是为了提高可靠性,可用性,安全性或质量。例如,它一次只能提供一个请求。话虽如此,每个用例都定义了自己的一组定义生产环境的需求。根据我的需要,我认为“生产”不会满足亚马逊对生产的定义:)