diff options
| author | Rob Hudson | 2008-09-09 14:50:14 -0700 |
|---|---|---|
| committer | Rob Hudson | 2008-09-09 14:50:14 -0700 |
| commit | 338c7a0a38996d2ffb3e192b63646a6c23dc5bba (patch) | |
| tree | e1e63e64a4096ea3704cea607ac28ef7a7359393 /debug_toolbar/panels/sql.py | |
| parent | 76a9d548f4f09cb1c54b0bc467a9a61c6d91fd96 (diff) | |
| download | django-debug-toolbar-338c7a0a38996d2ffb3e192b63646a6c23dc5bba.tar.bz2 | |
Making it so that the SQL panel display SQL a little more formatted and nice.
Diffstat (limited to 'debug_toolbar/panels/sql.py')
| -rw-r--r-- | debug_toolbar/panels/sql.py | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/debug_toolbar/panels/sql.py b/debug_toolbar/panels/sql.py index 0a95533..f23e317 100644 --- a/debug_toolbar/panels/sql.py +++ b/debug_toolbar/panels/sql.py @@ -1,4 +1,4 @@ -from time import time +import time from debug_toolbar.panels import DebugPanel from django.db import connection from django.db.backends import util @@ -10,11 +10,11 @@ class DatabaseStatTracker(util.CursorDebugWrapper): in `connection.queries`. """ def execute(self, sql, params=()): - start = time() + start = time.time() try: return self.cursor.execute(sql, params) finally: - stop = time() + stop = time.time() # We keep `sql` to maintain backwards compatibility self.db.queries.append({ 'sql': self.db.ops.last_executed_query(self.cursor, sql, params), @@ -31,13 +31,32 @@ class SQLDebugPanel(DebugPanel): name = 'SQL' has_content = True + def __init__(self, request): + super(SQLDebugPanel, self).__init__(request) + self._offset = len(connection.queries) + self._sql_time = 0 + + def _reformat_sql(self, sql): + sql = sql.replace('`,`', '`, `') + sql = sql.replace('` FROM `', '` \n FROM `') + sql = sql.replace('` WHERE ', '` \n WHERE ') + sql = sql.replace(' ORDER BY ', ' \n ORDER BY ') + return sql + def title(self): - total_time = sum(map(lambda q: float(q['time']) * 1000, connection.queries)) - return '%d SQL Queries (%.2fms)' % (len(connection.queries), total_time) + self._sql_time = sum(map(lambda q: float(q['time']) * 1000, connection.queries)) + return '%d SQL Queries (%.2fms)' % (len(connection.queries), self._sql_time) def url(self): return '' def content(self): - context = {'queries': connection.queries} + sql_queries = connection.queries[self._offset:] + for query in sql_queries: + query['sql'] = self._reformat_sql(query['sql']) + + context = { + 'queries': sql_queries, + 'sql_time': self._sql_time, + } return render_to_string('debug_toolbar/panels/sql.html', context) |
