Django调试方法两则

web程序调试起来和桌面程序有着很大的差别,对于Django程序来说调试更是个问题,虽然现在有第三方的调试工具robhudson-django-debug-toolbar,但使用起来并不是很方便,而且很多人习惯于通过print来调试,这样方便快捷。下面就介绍两种简单的调试方法:

1.充分利用Django的error page

Django的error page功能很强大,能提供详细的traceback,包括局部变量的值,以及一个纯文本的异常信息。拥有同phpinfo()一样的作用,可以展示当前应用的相关设置,包括请求中的 GET, POST and COOKIE 数据以及HTTP环境中的所有重要META fields。

可以通过

 
  
assert False
assert False, request.GET

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

 

2.输出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)

上述调试方法来源于网络,参见:http://simonwillison.net/2008/May/22/debugging/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值