django-cache-utils2 est une application Django qui fournit décorateur en cache et la fonction invalide.
Installation
pip installer django-cache-utils2
Utilisation
de cache_utils2 importation en cache, invalider
cached (60)
def foo (x, y = 0):
& Nbsp; print 'foo est appelé'
& Nbsp; return x + y
foo (1, 2) # foo est appelé
foo (1, y = 2)
foo (5, 6) # foo est appelé
foo (5, 6)
invalider (foo, {'x': 1, 'y': 2})
foo (1, 2) # foo est appelé
foo (5, 6)
foo (x = 2) # foo est appelé
foo (x = 2)
classe Foo (objet):
& Nbsp;cached (60)
& Nbsp; def foo (self, x, y):
& Nbsp; print "foo est appelé"
& Nbsp; return x + y
obj = Foo ()
obj.foo (1,2) # foo est appelé
obj.foo (1,2)
invalider (Foo.foo, {'x': 1, 'y': 2})
obj.foo (1,2) # foo est appelé
Exemple Django
à partir de modèles django.db d'importation
de cache_utils2 importation en cache, invalider
classe CityManager (models.Manager):
& Nbsp; # cache un résultat de la méthode. Paramètre 'auto' est ignorée
& Nbsp;cached (60 * 60 * 24)
& Nbsp; défaut de def (auto):
& Nbsp; retour self.active () [0]
& Nbsp; # cache un résultat de la méthode. «Soi» paramètre est ignoré, et args
& Nbsp; # kwargs sont utilisés pour construire la clé de cache
& Nbsp;cached (60 * 60 * 24)
& Nbsp; get def (auto, * args, ** kwargs):
& Nbsp; retour super (CityManager, auto) .get (* args, ** kwargs)
classe City (models.Model):
& Nbsp; # ... les déclarations de champ
& Nbsp; objets CityManager = ()
& Nbsp; # méthode d'instance de modèle cache django résultat par exemple pk
& Nbsp;cached (30, varier self.pk '' =)
& Nbsp; has_offers def (auto):
& Nbsp; retour self.offer_set.count ()> 0
# Invalidation des méthodes de modèle
invalider (City.has_offers, {'self.pk': 1}
Note
Si la fonction retourne décorée cache cache_utils2.NO_CACHE sera contourné.
Exécution des tests
. Obtenir le code source et lancez runtests.py
Exigences :
- Python
- Django
Commentaires non trouvées