Python/Django中"echo something; exit();"的等效实现是什么?
有时候,调试问题的最好方法就是把一些信息打印到页面上,然后用 exit()
停止程序的运行。在 Python/Django 网站中,我该怎么做呢?
比如在 PHP 中:
echo $var;
exit();
谢谢
4 个回答
3
如果你在使用 mod_wsgi,可以这样做:
print var
raise SystemExit
这里提到的 SystemExit 异常其实不会像平常那样让整个程序退出,而只是让当前的请求结束,前提是没有更高层的代码捕捉到这个异常并处理掉它。
确保你使用的是 mod_wsgi 3.X 版本。如果你用的是更旧的 mod_wsgi,那么你需要这样做:
import sys
print >> sys.stderr
raise SystemExit
其他的 WSGI 服务器也可能会以相同的方式处理请求中的 SystemExit 异常,所以你可能需要自己试试看在其他托管方案下会发生什么。
关于调试 WSGI 应用的其他信息,可以阅读:
14
我想给出一个不同的答案:直接使用 print
语句,然后用 python manage.py runserver
来启动你的 Django 网站。
在这种情况下,print
语句的内容会显示在你的命令行窗口里,而你的网站会像平常一样正常运行。
17
把这个放到你的视图函数里:
from django.http import HttpResponse
return HttpResponse(str(var))