django-cache-utils2 önbelleğe dekoratör sağlar ve işlevi geçersiz Django uygulaması.
Kurulum
django-cache-utils2 yüklemeniz pip
Kullanım
cache_utils2 ithalat önbelleğe alınmış, geçersiz
cached (60)
def fan (x, y = 0):
& Nbsp; print 'foo denir'
& Nbsp; x + y dönüş
fan (1, 2) # foo adlandırılır
fan (1, Y = 2)
fan (5, 6) # foo adlandırılır
fan (5, 6)
geçersiz (foo {'x': 1, 'y': 2})
fan (1, 2) # foo adlandırılır
fan (5, 6)
fan (x = 2) # foo adlandırılır
fan (x = 2)
class Foo (object):
& Nbsp;cached (60)
& Nbsp; def foo (self, x, y):
& Nbsp; print "foo denir"
& Nbsp; x + y dönüş
obj = Foo ()
obj.foo (1,2) # foo adlandırılır
obj.foo (1,2)
geçersiz (Foo.foo, {'x': 1, 'y': 2})
obj.foo (1,2) # foo adlandırılır
Django Örnek
django.db ithalat modelleri
cache_utils2 ithalat önbelleğe alınmış, geçersiz
sınıf CityManager (models.Manager):
& Nbsp; # önbellek bir yöntem sonucu. 'Kendi kendine' parametre yoksayılır
& Nbsp;cached (60 * 60 * 24)
& Nbsp; def default (self):
& Nbsp; return self.active () [0]
& Nbsp; # önbellek bir yöntem sonucu. 'Kendi kendine' parametresi yok sayılır, args ve
& Nbsp; # kwargs önbellek anahtar oluşturmak için kullanılır
& Nbsp;cached (60 * 60 * 24)
& Nbsp; def (** kwargs kendini, * args) olsun:
& Nbsp; return süper (CityManager, self) .get (* args, ** kwargs)
Sınıf City (models.Model):
& Nbsp; # ... alan bildirimleri
& Nbsp; nesneleri = CityManager ()
& Nbsp; örnek pk tarafından # önbellek django modeli örnek yöntemi sonucu
& Nbsp;cached (30 = 'self.pk' değişir)
& Nbsp; def has_offers (self):
& Nbsp; return self.offer_set.count ()> 0
Model yöntemlerinin # iptal
geçersiz (City.has_offers, {'self.pk': 1}
Notlar
Dekore fonksiyon dönerse cache_utils2.NO_CACHE önbelleği atlanır.
Koşu testler
. Kaynak kodu alın ve runtests.py çalıştırmak
Gereksinimleri :
- Python
- Django
Yorum Bulunamadı