django-cache-utils2 er en Django app som gir bufret dekoratør og ugyldig funksjon.
Installasjon
Pip installere django-cache-utils2
Bruk
fra cache_utils2 import bufret, ugyldig
cached (60)
def foo (x, y = 0):
& Nbsp; print 'foo kalles'
& Nbsp; tilbake x + y
foo (1, 2) # foo kalles
foo (1, y = 2)
foo (5, 6) # foo kalles
foo (5, 6)
ugyldig (foo, {'x': 1, 'y': 2})
foo (1, 2) # foo kalles
foo (5, 6)
foo (x = 2) # foo kalles
foo (x = 2)
klasse Foo (objekt):
& Nbsp;cached (60)
& Nbsp; def foo (selv, x, y):
& Nbsp; print "foo kalles"
& Nbsp; tilbake x + y
obj = Foo ()
obj.foo (1,2) # foo kalles
obj.foo (1,2)
ugyldig (Foo.foo, {'x': 1, 'y': 2})
obj.foo (1,2) # foo kalles
Django eksempel
fra django.db import modeller
fra cache_utils2 import bufret, ugyldig
klasse CityManager (models.Manager):
& Nbsp; # cache en metode resultat. 'Selv' parameteren ignoreres
& Nbsp;cached (60 * 60 * 24)
& Nbsp; def standard (egen-):
& Nbsp; retur self.active () [0]
& Nbsp; # cache en metode resultat. 'Selv' parameteren ignoreres, args og
& Nbsp; # kwargs brukes til å konstruere cache nøkkelen
& Nbsp;cached (60 * 60 * 24)
& Nbsp; def får (selv, * args, ** kwargs):
& Nbsp; avkastning super (CityManager, selv) .Få (* args, ** kwargs)
klasse City (models.Model):
& Nbsp; # ... felt erklæringer
& Nbsp; gjenstander = CityManager ()
& Nbsp; # cache django modellen forekomst metode resultat av forekomst pk
& Nbsp;cached (30, varierer = 'self.pk')
& Nbsp; def has_offers (egen-):
& Nbsp; retur self.offer_set.count ()> 0
# Omstøtelse av modell metoder
ugyldig (City.has_offers, {'self.pk': 1}
Merknader
Hvis dekorerte funksjonen returnerer cache_utils2.NO_CACHE cache vil bli forbigått.
Antall tester
. Få kildekoden og kjøre runtests.py
Krav
- Python
- Django
Kommentarer ikke funnet