动态部署Django管理员应用

2024-04-18 16:31:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近开始了python/django演练,但仍然有一个问题困扰着我:我没有找到一种简单、不引人注目、无痛的方法来部署django应用程序=(。我只看到mod嫒python,fastCGI,wsgi的教程-所有这些都是我创建的每个webapp所必需的。。在

我已经习惯了javaweb应用程序(JSF+Tomcat),并且习惯于将*war包放到webapps文件夹中。或者通过tomcat管理器上传*war。或者,更好的方法是进行maven热远程部署。就我而言,简单的PHP应用程序也需要最少的配置(在设置apache2配置之后,只需将PHP webapp文件夹cp到/var/www/will..)。我不能相信Python缺少这种特性=()

我的观点是:在一个干净的OS安装之后(以JEE-VPS为例),我只需要设置我的web服务器一次。如果我开发webapp01,我会选择上面的一个选项来部署它。当我开发我的webapp02时,同样的事情-不需要改变一些tomcat-conf.xml文件在webapp01之后部署它。显然,我只考虑小的webapps,比如Django管理类。=]

我的目标是设置一个Python/Django webserver并动态创建Django管理webapp,自动将它们热部署到web服务器上。{a1}服务器一开始就准备好了。当用户A生成webapp01时,它将在http://myserver.com/userA/webappA01中透明可用。在

有可能吗?在


Tags: django方法服务器文件夹webmod应用程序部署
2条回答

首先,Python/Django本身不提供“插入式”部署功能,我也不知道如何做类似于war包的事情。在

有些服务提供了像Heroku这样的简单部署方法,但是我建议初学者阅读Django's official documentation about deploying。在

My target is to setup a Python/Django webserver and dynamically create Django admin webapp's, automatically hot deploying them to the webserver. So, I'd initially setup the web server stuff once and have a ready http://myserver.com. When user A generated a webappA01, it would be transparently available in http://myserver.com/userA/webappA01.

听起来你想做的事情可以用custom ^{} instances来完成。 基本上,您可以编写一个视图来实例化名为“webapp”的AdminSite实例(当然可以从url中提取这些参数,并检查数据库中是否存在webapp数据)。您需要从该视图或通过重写其init方法将任何模型连接到该AdminSite实例。Django admin的autodiscover功能可能不适用于自定义管理站点。在

现代的方法是在Apache或NGINX中使用uwsgi(我推荐这个)。 我不知道一个工具可以自动部署你的Django应用程序。有很多像Heroku这样的web服务可以自动部署你的应用(你只需要提供你的VCS存储库)。在

您可以通过编写一些脚本来半自动地部署Django应用程序,这些脚本将同步您的代码库、为db应用迁移并重新加载web服务器。选中fabric或{a2}。在

相关问题 更多 >