代码之家  ›  专栏  ›  技术社区  ›  adamJLev

相当于python/django中的php“echo something;exit();”?

  •  19
  • adamJLev  · 技术社区  · 14 年前

    有时候调试的最好方法是把一些东西打印到页面上,然后 exit() ,如何在python/django站点中执行此操作?

    例如,在php中:

    echo $var;
    exit();
    

    谢谢

    4 回复  |  直到 14 年前
        1
  •  16
  •   interjay    14 年前

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

    from django.http import HttpResponse
    return HttpResponse(str(var))
    
        2
  •  14
  •   jdcantrell    14 年前

    我只想给出另一个答案:简单地使用 print 声明并为您的django站点提供 python manage.py runserver

    在这种情况下 打印 语句显示在shell中,站点将继续正常运行。

        3
  •  1
  •   Graham Dumpleton    14 年前

    如果您使用的是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

        4
  •  -1
  •   Mike    14 年前

    如果不想让mod_wsgi在打印时崩溃,请在wsgi文件中执行此操作

    sys.stdout = sys.stderr
    

    打印结果将被发送到错误日志