Debuging Django

2019/04/29

Tags: pytyhon django debug

起初 hackernews 看到一个文章 PySnooper: Never use print for debugging again,觉得挺有意思的,结果把 hackernews 的讨论看了一下发现有意思东西更多一点,总结一下。

  1. [https://github.com/cool-RR/pysnooper][PySnooper]]: Never use print for debugging again,只需要给函数加一个装时期,就可以把函数执行的每一步的结果都打印出来。
  2. [https://django-extensions.readthedocs.io/en/latest/runserver_plus.html][django-extensions]] 的 runserver-plus 配合 Werkzeug 可以实现在遇到异常的时候,支持在 web 上面调试代码,打印异常的时候的上下文内容什么的。
  3. Python 自己的 breakpoint 函数,执行到的时候默认会进入 pdb.set_trace() 状态方便你进行上下文调试。
  4. [https://github.com/gruns/icecream][icecream]] 提供了一个方便的 ic 函数,可以无感的加入到你的代码里面,不影响你的代码的执行结果,但是会打印传给它的参数和执行结果。
  5. [https://github.com/robdmc/behold][Behold]]: A debugging tool for large Python projects,可以替代你写冗长的打印命令。不过感觉它自己的语法似乎也并不方便。。。
  6. VS Code 提供的 Logpoints 和 Visual Studio 提供的 Break When Value Changes
  7. [https://github.com/cknd/stackprinter][stackprinter]] 可以让你的堆栈打印更友好,打印堆栈的时候还可以输出上下文的取值。
  8. pdb, epdb,ipdb, 应该都是类似的东西,其中 pdb 是自带的。通过给代码增加 import ipdb ipdb.set_trace() 调试。
  9. [https://github.com/tylerwince/pydbg][pydbg]] 替代 print 的。

Comments