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 | |
| 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.
| -rw-r--r-- | debug_toolbar/panels/sql.py | 31 | ||||
| -rw-r--r-- | debug_toolbar/templates/debug_toolbar/panels/sql.html | 3 |
2 files changed, 27 insertions, 7 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) diff --git a/debug_toolbar/templates/debug_toolbar/panels/sql.html b/debug_toolbar/templates/debug_toolbar/panels/sql.html index 3d6a966..046be7f 100644 --- a/debug_toolbar/templates/debug_toolbar/panels/sql.html +++ b/debug_toolbar/templates/debug_toolbar/panels/sql.html @@ -1,3 +1,4 @@ +<h3>SQL Queries</h3> <table> <thead> <tr> @@ -9,7 +10,7 @@ {% for query in queries %} <tr class="{% cycle 'row1' 'row2' %}"> <td>{{ query.time|floatformat:"4" }}</td> - <td>{{ query.sql|escape }}</td> + <td><pre>{{ query.sql|escape }}</pre></td> </tr> {% endfor %} </tbody> |
