Login

cache_page that does nothing

Author:
peterbe
Posted:
August 20, 2009
Language:
Python
Version:
1.1
Tags:
cache decorator cache_page
Score:
0 (after 2 ratings)

When debugging/developing you want to be able to refresh your views every time you make a little change. But when in production mode you might want to cache these views because they contain long and resource hungry calculations or something.

By putting this above "hack" in after importing cache_page you only cache the views in production mode.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
from django.conf import settings
from django.views.decorators.cache import cache_page

if settings.DEBUG:
    def cache_page(delay):
        def rendered(view):
            def inner(request, *args, **kwargs):
                return view(request, *args, **kwargs)
            return inner
        return rendered

@cache_page(60 * 60) # 1 hour
def my_view(request):
    ...expensive calculation...

More like this

  1. New view decorator to only cache pages for anonymous users by vaughnkoch 4 years, 9 months ago
  2. Use memcached to throttle POSTs by coleifer 5 years, 2 months ago
  3. Get the Django decorator/middleware cache key for given URL by s29 3 years, 8 months ago
  4. Lightweight querysets by sardarnl 2 years, 1 month ago
  5. Cache Any Function by jeffwheeler 8 years, 4 months ago

Comments

larin (on August 21, 2009):

@gregb

+100 =)))

#

Please login first before commenting.