在 Django/Python 中,如何找出调用我的方法的方法?

Deo*_*omo 3 python django stack-trace

我将我的方法的第一行是:

print "this method was called from "+filename_and_linenumber_of_code_that_called_it.
Run Code Online (Sandbox Code Playgroud)

是否可以抛出异常,立即捕获并在调用方法时打印堆栈跟踪?

jpi*_*pic 6

当我只想让代码在某个时候崩溃以查看回溯时,我只是crash在代码中添加了“ ”。因为没有定义,所以会崩溃,我会在django的异常页面看到traceback。此外,如果我使用(需要包)runserver_plus提供的命令,那么我会在 stacktrace 的每一帧获得一个 AJAX shelldjango-extensionswerkzeug

我理解你的问题,我将提出一种专业的方法来处理这种问题。您正在尝试做的称为“调试”,并且有一些工具可以做到这一点。

快速入门

  1. pip install ipython ipdb

  2. 将代码中的打印语句替换为 import ipdb; ipdb.set_trace()

  3. 在 runserver 中执行您的代码,它将暂停并生成一个 python shell,您可以在其中发送命令“ up”以转到上一个堆栈帧(调用您的代码的代码)l如果要查看更多代码行,请键入。

更长的开始:实际上我写了一个帮助调试 python 和 django 的工具的概述

我不同意其他建议添加更详细的打印语句的答案。您想成为一名优秀的开发人员:您想使用调试器。无论是werkzeug、pdb/ipdb还是GUI,只要能用就行。