首页 > 其他 > 详细

Django的调试方法

时间:2014-07-07 20:00:40      阅读:328      评论:0      收藏:0      [点我收藏+]

web程序调试起来和桌面程序有着很大的差别,对于Django程序来说调试更是个问题。我们可以用postman发送http请求,下面就介绍几种调试方法:

1、在Eclipse+Pydev中调试Django

适用于测试环境。

可进行单步调试,查看变量值,当出现except时,可以用Python标准模块traceback的print_exc()函数查看函数调用链,是最强大的调试利器。

可参考http://my.oschina.net/chihz/blog/180573#OSC_h2_3

 

2、使用Django的error page

适用于测试环境。

Django的error page功能很强大,能提供详细的traceback,包括局部变量的值,以及一个纯文本的异常信息。拥有同phpinfo()一样的作用,

可以展示当前应用的相关设置,包括请求中的 GET, POST and COOKIE 数据以及HTTP环境中的所有重要META fields。

可以通过

assert False
assert False, request.GET

来触发Django的错误页面,进而进行调试工作

 

3、django-debug-toolbar

    不确定是否用于生产环境。听说功能非常强大,我没用过。

 

4、输出log到开发服务器终端中

适用于生产环境。

借助python的logging模块

在setting.py中添加如下配置

import logging
logging.basicConfig(
level
= logging.DEBUG,
format
=%(asctime)s %(levelname)s %(message)s,
)

在需要输出log信息的地方可以这样调用

import logging
logging.debug(
"A log message")

这样一来就能在开发服务器的终端中看到想要输出的log,如果想将log信息记录到指定文件中去,调整logging的basicConfig即可,如下所示:

logging.basicConfig(
level
= logging.DEBUG,
format
=%(asctime)s %(levelname)s %(message)s,
filename
=/tmp/myapp.log,
filemode
=w
)

有时我们发现我们的程序大部分情况下运行正常,只在特定环境中出现错误,此时可以使用traceback module 记录当前栈存信息 ,方便调试。具体调用方法如下所示:

import logging, traceback, pprint
def my_buggy_function(arg):
...
if error_condition:
stack
= pprint.pformat(traceback.extract_stack())
logging.debug(
An error occurred: %s% stack)

logging模块是线程安全的,但不能用于多进程。在多进程的环境下,需要做成B/S结构的,可参考http://www.blogjava.net/qileilove/archive/2014/01/08/408669.html

Django的调试方法,布布扣,bubuko.com

Django的调试方法

原文:http://www.cnblogs.com/ajianbeyourself/p/3813257.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!