在编写代码时,我通常习惯于每隔一分钟保存一次文件。有时,这导致函数未完成的情况,并且我保存了它,导致django开发服务器抛出如下错误:
Unhandled exception in thread started by ...
Traceback
..
..
File "/home/user/work/project/api/file.py", line 26
def update_something(self, )
^
SyntaxError: invalid syntax
现在,在代码工作正常的情况下,django dev服务器会自动重新启动文件,并保留反映的更改。如何让django服务器从失败的错误状态恢复,并在后续文件保存时自动重启服务器?
目前,我必须在终端中停止python manage.py runserver
命令,然后再次手动运行。
我在django 1.5.3
python 2.7.6
答案 0 :(得分:16)
我使用一个简单的bash脚本。这是您可以使用的单行:
$ while true; do python manage.py runserver; sleep 2; done
在尝试重新启动服务器之前,它会等待2秒钟。插入您认为合理的值。
我通常把它写成一个名为runserver.sh
的shell脚本,将它放在我的项目根目录(与manage.py在同一目录中)并将其添加到gitignore。
while true; do
echo "Re-starting Django runserver"
python manage.py runserver
sleep 2
done
如果您这样做,请记住chmod +x runserver.sh
,然后您可以执行以下操作:
./runserver.sh
使用Ctrl-c Ctrl-c
退出。
答案 1 :(得分:0)
在Windows上,您可以使用批处理文件,将其编写为名为runserver.bat的批处理脚本
@echo off
setlocal EnableDelayedExpansion
setlocal EnableExtensions
:WHILE_0
if 1 EQU 1 (
python manage.py runserver
sleep 2
goto WHILE_0
)
然后您可以单击它或从命令行执行它:
./runserver.sh