如何在Django中进行调试的好方法?

发布于 2021-02-02 22:41:19

因此,我开始学习使用Python和更高版本的Django进行编码。第一次很难查看回溯,实际上要弄清楚我做错了什么以及语法错误在哪里。现在已经过去了一段时间,并且我想我已经有了调试Django代码的例程。由于这是我编码经验的早期,所以我坐下来,想知道我的操作方式是否无效并且可以更快地完成。我通常设法找到并纠正代码中的错误,但是我想知道是否应该更快地执行该操作?

我通常只使用Django启用时提供的调试信息。当事情按预期完成时,我因语法错误而使代码流中断很多,然后查看流中该点的变量以弄清楚代码在执行什么操作而不是我想要的。

但这可以改善吗?是否有一些好的工具或更好的方法来调试Django代码?

关注者
0
被浏览
343
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    有很多方法可以做到,但是最直接的方法就是简单地使用Python调试器。只需将以下行添加到Django视图函数中:

    import pdb; pdb.set_trace()
    

    要么

    breakpoint() #from Python3.7
    如果尝试在浏览器中加载该页面,浏览器将挂起,并提示你对实际执行的代码进行调试。

    但是,还有其他选择(我不推荐使用):

    * return HttpResponse({variable to inspect})
    
    * print {variable to inspect}
    
    * raise Exception({variable to inspect})
    

    但是强烈建议所有类型的Python代码都使用Python调试器(pdb)。如果你已经到PDB,你想也想看看IPDB使用IPython中进行调试。



  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    模板标记的小工具:

    @register.filter 
    def pdb(element):
        import pdb; pdb.set_trace()
        return element
    

    现在,你可以在模板内执行{{ template_var|pdb }}并输入一个pdb会话(假设你正在运行本地devel服务器),你可以在其中检查element你的内心状况。

    这是查看对象到达模板时发生了什么情况的一种很好的方法。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看