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(
"<!-- ____SIZE_AND_DATE_PLACEHOLDER____ -->",
"(%s, %0.3f seconds)" % (
filesizeformat(len(response.content)),
time.time() - request._request_start_time,
)
)
return response
Comments
This is now maintained as a part of dutils.
#