论坛首页 编程语言技术论坛

[django]自制一个打印SQL语句的中间件

浏览 3635 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-11-07   最后修改:2008-11-14
要在自带的runserver 下运行,也就是开发环境下,为了方便部署,在 project 目录新建一个文件:
debug.py
#coding=utf8
DEBUG=True
MIDDLEWARE_CLASSES += ('sqlmiddleware.PrintSQL',) 


再建一个中间件在project目录下:
sqlmiddleware.py
#coding=utf8
from django.db import connection
class PrintSQL(object):
  def process_response(self, request, response):
    temp = 0
    for x in connection.queries:
      print x
      temp += float(x['time'])
    print 'time count:',temp,'=' * 40


准备工作做完了。下面运行服务器吧:
python manage.py runserver 127.0.0.1:8000 --settings debug

好了,你的每一次request都会在shell中看到SQL语句了。
   发表时间:2008-11-13   最后修改:2008-11-13
这样的功能django就内置了啊。django.core.context_processors.debug

而且现在有个工具叫django debug bar 用来分析生成的SQL更方便。
0 请登录后投票
   发表时间:2008-11-14  
jinhao7773 写道

这样的功能django就内置了啊。django.core.context_processors.debug 而且现在有个工具叫django debug bar 用来分析生成的SQL更方便。

不错,我去试试。
0 请登录后投票
   发表时间:2008-11-17  
django debug toolbar 有好几个分支版本。
建议使用
http://github.com/dcramer/django-debug-toolbar/tree/master

它可以分析重复的SQL。
0 请登录后投票
   发表时间:2008-12-06  
我也觉得django debug toolbar很好用
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics