当有人远程访问Django服务器时(比如,不是使用浏览器,而是使用机器人或其他自动化工具),对于我来说跟踪服务器正在做什么并试图调试的“好”方式是什么?任何问题?
答案 0 :(得分:3)
不应在生产服务器上进行调试,因此您应该使用开发服务器,基本上可以使用manage.py runserver
+ import pdb; pdb.set_trace()
。
假设您的开发服务器在像heroku这样的平台上运行,您可能无法控制脚本的启动方式。从那里开始,可以使用远程调试,以下是如何做到的:
如果您希望能够远程执行代码执行和调试(完全不适合生产设置),您可以使用{{3} }。我坚持认为你不应该这样做,除非你知道你在做什么(如果你不在生产服务器上做它!)
基本上,rpdb
所做的是,当您致电rpdb.set_trace()
时,pdb
已启动且其stdin
和stdout
被重定向到4444端口(但你可以改变它当然)。然后你可以telnet(或netcat,就此而言)到那个端口并从那里做你的调试。
真的,你不应该这样做。