Login

Prettify HTML body contents in HTTP response

Author:
n1k0
Posted:
November 29, 2010
Language:
Python
Version:
1.2
Score:
4 (after 4 ratings)

This is an enhancement of snippet #172. Here I use BeautifulSoup — far more easier to install through pip in a virtualenv, and possibly a bit more maintained — to format and properly indent the rendered HTML from templates.

I also added a check to only tidy contents in a DEBUG=True environment, regarding high impact on performance while doing so in production.

Last, it's compatible with Django 1.2.x.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
import settings

from BeautifulSoup import BeautifulSoup


class PrettifyMiddleware(object):
    """HTML code prettification middleware."""
    def process_response(self, request, response):
        if settings.DEBUG and response['Content-Type'].split(';', 1)[0] == 'text/html':
            response.content = BeautifulSoup(response.content).prettify()
        return response

More like this

  1. codigo alto nivel by MrRocklion 1 month ago
  2. Load template from specific app by Krzysiek555 1 month, 3 weeks ago
  3. PostgreSQL JSON subqueries by dolamroth 1 month, 3 weeks ago
  4. "Magic Link" Management Command by webology 7 months ago
  5. Closest ORM models to a latitude/longitude point by simonw 7 months ago

Comments

cricogik (on December 7, 2010):

It's ok n1k0. Yours version of PrettifyMiddleware is better because #570 don't check DEBUG status.

#

Please login first before commenting.