为了账号安全,请及时绑定邮箱和手机立即绑定

没有对manage.py runserver的追溯

没有对manage.py runserver的追溯

肥皂起泡泡 2021-03-12 14:11:04
奇怪的问题。我有一个以两种方式运行的Django站点:正常通过apache / wsgi:80python manage.py runserver测试时带:8000通过wsgi,一切工作正常,但是使用runserver,当我进入任何错误页面(debug = True)时,页面会加载一半,然后永远保持加载状态,而不会显示回溯。有关加载“ halfway”的一些注意事项:对于相同的错误,似乎加载到完全相同的点对于不同的错误,它将是不同的点(根据Firebug,回溯的不同部分和文件大小都不同)对于不同的浏览器,它将加载到不同的位置(如果重新加载页面,则加载到相同的位置)。一个例子:我现在有一个ValueError,它加载到回溯的第一步,在“本地变量”处request加载。在Firefox中,它的负载上限为SSH_CONNECTION,而在Chrome中的负载为上限SHELL(在Firefox中可以正常加载)。服务器重新启动无效。正常(非错误)页面加载正常。控制台不显示任何特殊内容,仅显示代码为500的请求。
查看完整描述

2 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

听起来pdb.set_trace()您的代码中有一个地方。我猜想在__unicode__呈现错误页面时会调用某种方法或某种东西。这基于开发服务器的输出被缓冲的概念。


另一个(很有可能)的可能性是,您在某个地方进行了无穷无尽的递归调用(可能与上述set_trace情况在相似的位置),但是递归功能花费的时间足够长,以至于您永远不会看到RuntimeError: maximum recursion depth exceeded错误。


例如:


import time


def foo():

    time.sleep(.2)

    bar()


def bar():

    foo()


bar()

否则,要使Python程序挂起是非常困难的,除非您故意这样做。


查看完整回答
反对 回复 2021-03-31
  • 2 回答
  • 0 关注
  • 237 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信