Python/Django中"echo something; exit();"的等效实现是什么?

21 投票
4 回答
29524 浏览
提问于 2025-04-15 22:13

有时候,调试问题的最好方法就是把一些信息打印到页面上,然后用 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 应用的其他信息,可以阅读:

http://code.google.com/p/modwsgi/wiki/DebuggingTechniques

14

我想给出一个不同的答案:直接使用 print 语句,然后用 python manage.py runserver 来启动你的 Django 网站。

在这种情况下,print 语句的内容会显示在你的命令行窗口里,而你的网站会像平常一样正常运行。

17

把这个放到你的视图函数里:

from django.http import HttpResponse
return HttpResponse(str(var))

撰写回答