在没有runserver的情况下更改视图功能后,按F5刷新页面,Django将不会重新加载新视图,而是使用前一个视图。但是如果你改变模板,Django总是使用新模板。
那么,有没有办法让Django每次用户刷新页面时重新加载视图,我认为开发频繁修改视图功能非常方便。
答案 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