0

我正在学习使用 dajaxice,并且一直在破坏东西,但是由于只有 ajax 部分无法正常工作,因此整个站点不会破坏并生成错误消息,因此我要花很长时间才能找到我的错误。有没有办法找出问题的确切位置?

4

1 回答 1

0

我在firefox中使用firebug,在net选项卡中,django错误消息出现在服务器的响应下。

这是一个ajax示例:

在此处输入图像描述

如果 django / dajaxice 遇到代码中的 bug,则会生成 http 500(内部服务器错误)响应,firefug 以红色突出显示。响应往往相当大,并且 dajaxice 响应在 html 中,但通过一些滚动总是可以找到错误消息!我认为 Google Chrome 在开发人员工具中提供了类似的功能。

另一个方便的技巧是print在 dajaxice 方法中使用语句,例如:

@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 的网络请求中,如果其中一个打印语句没有出现而不是代码执行没有那么远,或者没有遵循 a 的那个分支有条件的(if 语句)。

一旦打印语句正常工作,就应该从代码中删除它,因为它们会影响应用程序在生产环境中的速度。一个长期的解决方案是使用该django.logging模块。

于 2013-11-09T22:07:08.573 回答