没有对manage.py runserver的追溯

奇怪的问题。我有一个以两种方式运行的Django站点:

  1. 正常通过apache / wsgi:80

  2. python manage.py runserver测试时带:8000

通过wsgi,一切工作正常,但是使用runserver,当我进入任何错误页面(debug = True)时,页面会加载一半,然后永远保持加载状态,而不会显示回溯。

有关加载“ halfway”的一些注意事项:

  • 对于相同的错误,似乎加载到完全相同的点

  • 对于不同的错误,它将是不同的点(根据Firebug,回溯的不同部分和文件大小都不同)

  • 对于不同的浏览器,它将加载到不同的位置(如果重新加载页面,则加载到相同的位置)。

  • 一个例子:我现在有一个ValueError,它加载到回溯的第一步,在“本地变量”处request加载。在Firefox中,它的负载上限为SSH_CONNECTION,而在Chrome中的负载为上限SHELL(在Firefox中可以正常加载)。

  • 服务器重新启动无效。

正常(非错误)页面加载正常。控制台不显示任何特殊内容,仅显示代码为500的请求。


肥皂起泡泡
浏览 238回答 2
2回答

紫衣仙女

听起来pdb.set_trace()您的代码中有一个地方。我猜想在__unicode__呈现错误页面时会调用某种方法或某种东西。这基于开发服务器的输出被缓冲的概念。另一个(很有可能)的可能性是,您在某个地方进行了无穷无尽的递归调用(可能与上述set_trace情况在相似的位置),但是递归功能花费的时间足够长,以至于您永远不会看到RuntimeError: maximum recursion depth exceeded错误。例如:import timedef foo():    time.sleep(.2)    bar()def bar():    foo()bar()否则,要使Python程序挂起是非常困难的,除非您故意这样做。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python