首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为流浪者中的多个Django应用程序设置开发环境,允许立即更新

为流浪者中的多个Django应用程序设置开发环境,允许立即更新
EN

Stack Overflow用户
提问于 2015-09-04 05:03:48
回答 2查看 412关注 0票数 1

我使用迷航器和virtualbox建立了一个虚拟环境。

虚拟环境使用的是ubuntu14.04生产操作系统。

我希望有多个django应用程序使用这个相同的虚拟机设置。

我所期望的

每当我使用我最喜欢的编辑器(如Vim或崇高)在我的macbook上编辑任何python文件或html时,只要我在浏览器上(也在我的macbook中)按刷新键,就会立即进行更改。

django应用程序是通过url (如http://djangoapp1 )来实现的。其他应用程序可以是http://djangoapp2

所有这些urls实际上都指向同一台迷途机器。

当我想编辑数据库( postgres )时,我只需要在我的macbook中运行valentina工作室,它就会连接到运行在虚拟机中的postgres数据库。

到底发生了什么,

我花了很多时间让多个django应用程序使用nginx和uwsgi在同一台机器上工作。

然后我意识到,每当我做出改变,变化都不会立即反映出来。我需要向uwsgi进程添加一个-触摸-重新加载,它现在开始使用upstart。

即使当我添加-触摸-重新加载时,每当我想要反映我的代码更改时,我仍然必须故意去“触摸”一个文件。

即使这样做了,改变也不会因为某种原因而出现。只有当我做了一个适当的vagrant halt,然后做了vagrant up,它才会出现。Vagrant reload会导致整个应用程序崩溃。

只有当我使用本机manage.py runserver时,才能使代码更改>刷新网页>查看更改周期

但这意味着我在开发过程中很难在应用程序之间切换。我必须关闭一个,然后再启动另一个。

如果我同样使用CakePHP或任何类型的PHP框架在同一个虚拟机中构建多个应用程序,我可以让make代码更改>刷新页>参见更改开发周期。

如何在使用我的家庭操作系统编写代码的同时,在同一虚拟机中实现多个Django应用程序的相同易用性?

EN

回答 2

Stack Overflow用户

发布于 2016-08-10 11:28:09

下面的代码段将使用Django的自动重新加载程序来检测代码更改,并在必要时将代码钩入uWSGI以重新加载代码:

代码语言:javascript
代码运行次数:0
运行
复制
import uwsgi
from uwsgidecorators import timer
from django.utils import autoreload

@timer(3)
def change_code_gracefull_reload(sig):
    if autoreload.code_changed():
        uwsgi.reload()

您可以将此代码放在wsgi.py文件中的get_wsgi_application()之前。装饰器将注册uWSGI每3秒运行一次的函数。

(原始源)

票数 2
EN

Stack Overflow用户

发布于 2016-08-09 20:00:02

-触摸-重新装填

正如我所知,这个arg用于特定的配置.ini文件。请尝试使用选项--py-autoreload 1

在开发阶段,我认为您可以直接将Nginx代理用于默认的runserverrunserver_plus (请检查django-extensions)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32390442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档