1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 | from django.db import connection
from django.template import Template, Context
class SQLLogMiddleware:
def process_response ( self, request, response ):
time = 0.0
for q in connection.queries:
time += float(q['time'])
t = Template('''
<p><em>Total query count:</em> {{ count }}<br/>
<em>Total execution time:</em> {{ time }}</p>
<ul class="sqllog">
{% for sql in sqllog %}
<li>{{ sql.time }}: {{ sql.sql }}</li>
{% endfor %}
</ul>
''')
response.content = "%s%s" % ( response.content, t.render(Context({'sqllog':connection.queries,'count':len(connection.queries),'time':time})))
return response
|
Comments
Is there some trick or dependency to this? Returns 0 for me. 0 queries, 0 seconds.
#
If you see no queries:
You must set DEBUG=True in settings.py
#
I improved this snippet in Snippet 344.
It counts duplicated SQL queries.
#
Since Unicode branch I've changed code at bottom to:
#