当请求远程发起时调试django的“好”方法是什么?

时间:2012-05-25 19:18:59

标签: python django debugging

当有人远程访问Django服务器时(比如,不是使用浏览器,而是使用机器人或其他自动化工具),对于我来说跟踪服务器正在做什么并试图调试的“好”方式是什么?任何问题?

1 个答案:

答案 0 :(得分:3)

你应该做什么

不应在生产服务器上进行调试,因此您应该使用开发服务器,基本上可以使用manage.py runserver + import pdb; pdb.set_trace()

你为什么不能这样做

假设您的开发服务器在像heroku这样的平台上运行,您可能无法控制脚本的启动方式。从那里开始,可以使用远程调试,以下是如何做到的:

你能做什么

如果您希望能够远程执行代码执行和调试(完全不适合生产设置),您可以使用{{3} }。我坚持认为你不应该这样做,除非你知道你在做什么(如果你在生产服务器上做它!)

基本上,rpdb所做的是,当您致电rpdb.set_trace()时,pdb已启动且其stdinstdout被重定向到4444端口(但你可以改变它当然)。然后你可以telnet(或netcat,就此而言)到那个端口并从那里做你的调试。

结束语

真的,你不应该这样做。