Python 什么是「;“尼斯”;远程发起请求时调试django的方法?
当有人远程访问Django服务器时(比如说,不是用浏览器,而是用机器人或其他自动化工具),我用什么“好”方法来跟踪服务器正在做什么,并尝试调试任何问题 你该怎么办 调试不应该在生产服务器上完成,因此您应该使用开发服务器,在开发服务器上基本上可以使用Python 什么是「;“尼斯”;远程发起请求时调试django的方法?,python,django,debugging,Python,Django,Debugging,当有人远程访问Django服务器时(比如说,不是用浏览器,而是用机器人或其他自动化工具),我用什么“好”方法来跟踪服务器正在做什么,并尝试调试任何问题 你该怎么办 调试不应该在生产服务器上完成,因此您应该使用开发服务器,在开发服务器上基本上可以使用manage.py runserver+import pdb;pdb.set_trace() 你为什么不能做呢 假设您的开发服务器运行在heroku这样的平台上,您可能无法控制脚本的启动方式。从这里开始,可以使用远程调试,下面是您可以使用的方法: 你能
manage.py runserver
+import pdb;pdb.set_trace()
你为什么不能做呢
假设您的开发服务器运行在heroku这样的平台上,您可能无法控制脚本的启动方式。从这里开始,可以使用远程调试,下面是您可以使用的方法:
你能做什么
如果您希望能够介入代码执行并进行远程调试(这对于生产设置来说非常合适),您可以使用。我坚持认为,除非您知道自己在做什么,否则不应该这样做(前提是您不是在生产服务器上做!)
基本上,rpdb
所做的是,当您调用rpdb.set_trace()
时,pdb
被启动,其stdin
和stdout
被重定向到端口4444(当然您可以更改)。然后,您将telnet(或netcat)连接到该端口,并从那里进行调试
结束语
真的,你不应该这样做。用户代理是机器人还是web浏览器会有区别吗?显然,
导入日志记录
是你的朋友,但我怀疑你正在试图修复某个特定问题或尝试测试某个特定区域-有线索吗?日志记录!=调试:P i要专门调试应用程序——IE,在调用中间任意进入调试模式,通过代码步进,观察变量如何变化等等。您可以使用<代码>导入PDB <代码> > <代码> PDB.SETTrace](或)>在控制台运行Python调试器,同时使用<代码> ./Maung.Py RunServer < /C>。只需将它放在您要开始调试的行中。我认为在生产服务器上没有一种简单的方法可以做到这一点。@WojciechŻó322; tak您的答案看起来是目前为止最好的选择。我看到了一个服务器加(./manage.py runserver加)的替代方案,但这似乎也不适合于prod