【发布时间】:2013-09-11 11:50:57
【问题描述】:
我正在学习使用 dajaxice,我一直在破坏东西,但是由于只有 ajax 部分不能正常工作,整个站点不会破坏并生成错误消息,所以我要花很长时间才能找到我的错误.有没有办法找出问题的确切位置?
【问题讨论】:
我正在学习使用 dajaxice,我一直在破坏东西,但是由于只有 ajax 部分不能正常工作,整个站点不会破坏并生成错误消息,所以我要花很长时间才能找到我的错误.有没有办法找出问题的确切位置?
【问题讨论】:
我在firefox中使用firebug,在net选项卡中,django错误消息出现在服务器响应下。
这是一个 ajax 示例:
如果 django / dajaxice 遇到代码中的 bug,则会生成 http 500(内部服务器错误)响应,firefug 以红色突出显示。响应往往相当大,并且 dajaxice 响应在 html 中,但通过一些滚动总是可以找到错误消息!我认为 Google Chrome 在开发人员工具中提供了类似的功能。
另一个方便的技巧是在 dajaxice 方法中使用 print 语句,例如:
@dajaxice_register
def updateText(request, objId, text):
print "updateText:: objId: %s text %s" % (objId, text)
t = TextItem.objects.get(id=objId)
t.text = text
print "updateText:: t.text: " % t.text
t.save()
json_return = simplejson.dumps({'text': text, 'objId': objId})
print "updateText:: json_return: %s" % json_return
return json_return
当使用./manage.py runserver 运行应用程序时,打印语句会立即显示在控制台中,并散布在对 django 的网络请求中,如果其中一个打印语句没有出现,那么代码执行没有达到那么远,或者没有不遵循条件(if 语句)的那个分支。
打印语句一旦正常工作,就应该从代码中删除,因为它们会影响应用在生产环境中的速度。更长期的解决方案是使用django.logging 模块。
【讨论】: