import time from django.utils.encoding import smart_unicode from django.template.defaultfilters import filesizeformat class SizeAndTimeMiddleware(object): def process_request(self, request): request._request_start_time = time.time() def process_response(self, request, response): if not hasattr(request, "_request_start_time"): return response if response['Content-Type'].split(';')[0] in ( 'text/html', 'application/xhtml+xml' ): response.content = smart_unicode(response.content).replace( "", "(%s, %0.3f seconds)" % ( filesizeformat(len(response.content)), time.time() - request._request_start_time, ) ) return response