django-cache-utils2 jest app Django, który zapewnia funkcję buforowane dekorator i unieważnia.
instalacji
pip zainstalować django-cache-utils2
Zastosowanie
z cache_utils2 importu buforowane unieważnienie
cached (60)
def foo (x, y = 0)
& Nbsp; print "foo jest nazywany"
& Nbsp; return x + y
foo (1, 2) # foo nazywa
foo (1, y = 2)
foo (5, 6) # foo nazywa
foo (5, 6)
unieważnienie (foo, {'x': 1, 'y': 2})
foo (1, 2) # foo nazywa
foo (5, 6)
foo (x = 2) # foo nazywa
foo (x = 2)
class Foo (object):
& Nbsp;cached (60)
& Nbsp; def foo (self, x, y):
& Nbsp; print "foo jest nazywany"
& Nbsp; return x + y
obj = Foo ()
obj.foo (1,2) # foo nazywa
obj.foo (1,2)
unieważnienie (Foo.foo, {'x': 1, 'y': 2})
obj.foo (1,2) # foo nazywa
Przykładem Django
z django.db modeli importowych
z cache_utils2 importu buforowane unieważnienie
Klasa CityManager (models.Manager):
& Nbsp; # cache wynikiem metody. Parametr "ja" jest ignorowane
& Nbsp;cached (60 * 60 * 24)
& Nbsp; domyślna def (self):
& Nbsp; self.active return () [0]
& Nbsp; # cache wynikiem metody. "Ja" parametr jest ignorowany, args i
& Nbsp; # kwargs wykorzystywane są do budowy klucz cache
& Nbsp;cached (60 * 60 * 24)
& Nbsp; def get (self, * args, ** kwargs):
& Nbsp; return bardzo (CityManager, self) .get (* args, ** kwargs)
Klasa Miasto (models.Model):
& Nbsp; # ... deklaracje pól
& Nbsp; obiekty = CityManager ()
& Nbsp; # metody instancji modelu Django wynik przez cache instancji pk
& Nbsp;cached (30, zmieniać "self.pk" =)
& Nbsp; def has_offers (self):
& Nbsp; return self.offer_set.count ()> 0
# Unieważnienie metod modelowych
unieważnienie (City.has_offers, {'self.pk': 1}
Uwagi
Jeśli funkcja urządzone zwraca cache_utils2.NO_CACHE cache będzie zablokowane.
badania przebiegu
. Pobierz kod źródłowy i uruchomić runtests.py
Wymagania :
- Python
- Django
Komentarze nie znaleziono