是否可以在不重新启动Django的情况下重新加载视图?

时间:2012-02-07 20:07:27

标签: django django-views

在没有runserver的情况下更改视图功能后,按F5刷新页面,Django将不会重新加载新视图,而是使用前一个视图。但是如果你改变模板,Django总是使用新模板。

那么,有没有办法让Django每次用户刷新页面时重新加载视图,我认为开发频繁修改视图功能非常方便。

5 个答案:

答案 0 :(得分:9)

如果您使用dev服务器(./manage.py runserver)运行django,那么它会在检测到任何代码更改时始终重新加载。这比每次请求重新加载更有效。如果您进行了更改,则会在需要时重新加载。

如果您正在运行生产服务器(nginx,apache等)并且需要代码重新加载,那么您需要向wsgi模块添加一些内容以检测代码更改。

使用apache重新加载代码:http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode

使用uwsgi重新加载代码:http://projects.unbit.it/uwsgi/wiki/TipsAndTricks

答案 1 :(得分:2)

这是PyDev的一个已知问题。我建议从终端/ cmd运行服务器。 cd到您的项目目录,其中存在manage.py并使用

运行服务器
python manage.py runserver

您无需从eclipse菜单运行该项目。 日食中的任何变化都会在拍摄后立即反映出来。

答案 2 :(得分:2)

如果您在守护程序模式下将Django作为WSGI应用程序运行,则只需触摸您站点的wsgi.py,它将在下次有请求时重新加载应用程序。 (所以不需要任何特殊选项)。

答案 3 :(得分:0)

我注意到它是pyDev运行配置中的一个设置。我想知道为什么但似乎默认配置了--noreload。所以我编辑运行设置的参数,现在服务器也在编辑视图时重新加载。

答案 4 :(得分:0)

尝试使用gunicorn或nginx作为运行服务器......他们不会在代码更改时重新启动 尝试输入

gunicorn --bind 0.0.0.0:8080 app.wsgi:application