Djangoが生成するSQLとコストのデバッグアウト
2006年04月09日(日) 10:37
Python Workshop the Edge2006 の懇親会で、「SQLのデバッグアウト」機能はないのかという話があったので、Middlewareをちょいと書いてみました(MagicRemoval 2509で動作確認)。
単にDjangoデフォルトで持っているデバッグ情報をprintするだけです。
エラー処理とかしていません。
また、DEBUGをTrueにしてあるときのみ出力します。
django.middlewareにdebug.pyというファイル名で作ってください。
作ったら、あとはsettings.pyのMIDDLEWARE_CLASSESに"django.middleware.debug.DBDebugMiddleware"を追加するだけです。
Create file named debug.py as below,and put it under django/middleware directory.
Add "django.middleware.debug.DBDebugMiddleware" line to MIDDLEWARE_CLASSES(settings.py).
It works only when settings.DEBUG is TRUE.
単にDjangoデフォルトで持っているデバッグ情報をprintするだけです。
エラー処理とかしていません。
また、DEBUGをTrueにしてあるときのみ出力します。
django.middlewareにdebug.pyというファイル名で作ってください。
作ったら、あとはsettings.pyのMIDDLEWARE_CLASSESに"django.middleware.debug.DBDebugMiddleware"を追加するだけです。
Create file named debug.py as below,and put it under django/middleware directory.
Add "django.middleware.debug.DBDebugMiddleware" line to MIDDLEWARE_CLASSES(settings.py).
It works only when settings.DEBUG is TRUE.
from django.conf import settings from django.db import connection class DBDebugMiddleware: """ "DBDebug" middleware for debug out O/R Mapper's SQL: """ def process_response(self, request, response): if settings.DEBUG : for query in connection.queries: print "cost: %s \n sql:%s" % (query['time'], query['sql']) return response