Django: enable gzip compression in views

January 21, 2014

Last update: March 28, 2020

The problem

We want to speed up how our web application serves contents. One of the thing we can do is enabling resource compression.

A solution

Update: 05 Feb 2015 The previous approach is wrong: compression, chaching, etc. are business of web server. So, to speed up our pages we have to edit the VirtualHost (for Apache) configuration. Here the lines:

<VirtualHost *:80>
# ...

# set default charset
AddDefaultCharset utf-8

# Cache settings - 1 week
Header set Cache-Control "max-age=604800, public"
    
# enable compression
SetOutputFilter DEFLATE

# ...
</VirtualHost>

A wrong solution

One of the most valuable tricks, we can apply to our Django projects to improve speed, is to enable GZip compression. Of course, it is easy! See the example below.

from django.views.decorators.gzip import gzip_page

@gzip_page
def my_view(request):
    ...

References

  1. View decorators: GZip compression


A photo of Elia Contini
Written by
Elia Contini
Sardinian UX engineer and a Front-end web architect based in Ticino, Switzerland. Marathoner, traveller, wannabe nature photographer.