我是Python新手,我在查看错误消息时遇到问题:我有一个javascript函数调用如:
$.getJSON('test.py', {data: 'somedata'}, function(return){alert(return.echo)})
并且test.py文件成功回显了该消息:
def application(environ, start_response):
import json
status = '200 OK'
response_headers = [('Content-type', 'application/json')]
start_response(status, response_headers)
data = environ['QUERY_STRING'].split('=')[1])
return json.dumps({'echo': data}, separators=(',',':'))
注意:我刚刚从内存中重新输入了这个脚本,所以如果你发现语法错误,那就是我输错了,基本脚本运行正常。
如果我通过电话运行该页面,我会收到提醒,然后如果我访问Chrome中的“网络”标签,我会看到
Request URL:http://localhost/test.py?data=somedata
Request Method:GET
Status Code:200 OK
在预览和响应标签上,我看到:
{"echo":"testdata"}
但是,如果我然后在脚本中抛出实际错误(在此学习期间通常会这样做!)并在Chrome中测试页面,网络选项卡会显示正在进行的调用
Request URL:http://localhost/test.py?data=somedata
Request Method:GET
Status Code:500 Internal Server Error
Query String Parameters: (view URL encoded)
data:'somedata'
但是,如果我点击预览,它会显示:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, you@example.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Apache/2.2.21 (Unix) DAV/2 mod_wsgi/3.3 Python/2.6.7 Server at localhost Port 80
我的问题是,是否可以使用此窗口显示堆栈跟踪或任何有助于我诊断问题的信息。我现在正在通过反复试验进行所有调试,除了喜欢Python的每一秒。
有人能指出我正确的方向吗?
编辑:此页:
http://code.google.com/p/modwsgi/wiki/DebuggingTechniques
在“错误捕获中间件”标题下有一个解决方案,但他们的示例对我不起作用。
答案 0 :(得分:1)
尝试编写代码以容忍未获得QUERY_STRING。如果没有,则以下内容将失败。
data = environ['QUERY_STRING'].split('=')[1])
一般来说,最好使用某种框架来确保这样的小事情可能不是问题。
请参阅Flask作为小型微框架的一个很好的例子。