def gettable(request):
reqdata = request.POST
data = reqdata['dataabc']
# print data
return HttpResponse("OK")
这样可行,但只要我取消注释print data
,我就会在我的开发控制台中看到500
响应。
为什么会发生这种情况?我只需要打印一些东西到控制台进行测试。
答案 0 :(得分:2)
In python 3, print
is a function.
使用print
作为语句将失败并引发异常,该异常将过早终止您的视图函数并导致错误500
。
print
是库和服务器端/后台任务代码中的不良做法。请改用logging
模块。 django甚至有section for how to configure and use logging
properly。
https://code.google.com/p/modwsgi/wiki/DebuggingTechniques
在mod_wsgi
版本3.0之前,当print
与sys.stdout
一起使用时,您会看到这一点:
IOError: sys.stdout access restricted by mod_wsgi
您需要明确使用文件,例如:
print >> sys.stderr, data # python 2
但是,您可以通过编辑配置并使用WSGIRestrictStdout
指令来禁用限制。
答案 1 :(得分:0)
完全同意dnozay。记录模块是一种可行的方法。
有关wsgi的print语句的更多信息: http://blog.dscpl.com.au/2009/04/wsgi-and-printing-to-standard-output.html?m=1