在上一个错误之后自动重启django开发服务器上的文件保存

时间:2014-08-08 08:56:00

标签: python django

在编写代码时,我通常习惯于每隔一分钟保存一次文件。有时,这导致函数未完成的情况,并且我保存了它,导致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

2 个答案:

答案 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