Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 什么是「;“尼斯”;远程发起请求时调试django的方法?_Python_Django_Debugging - Fatal编程技术网

Python 什么是「;“尼斯”;远程发起请求时调试django的方法?

Python 什么是「;“尼斯”;远程发起请求时调试django的方法?,python,django,debugging,Python,Django,Debugging,当有人远程访问Django服务器时(比如说,不是用浏览器,而是用机器人或其他自动化工具),我用什么“好”方法来跟踪服务器正在做什么,并尝试调试任何问题 你该怎么办 调试不应该在生产服务器上完成,因此您应该使用开发服务器,在开发服务器上基本上可以使用manage.py runserver+import pdb;pdb.set_trace() 你为什么不能做呢 假设您的开发服务器运行在heroku这样的平台上,您可能无法控制脚本的启动方式。从这里开始,可以使用远程调试,下面是您可以使用的方法: 你能

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

你该怎么办 调试不应该在生产服务器上完成,因此您应该使用开发服务器,在开发服务器上基本上可以使用
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