Django-cache-utils2 είναι ένα app Django που παρέχει προσωρινά αποθηκευμένες διακοσμητή και να ακυρώσει τη λειτουργία.
installation
Pip εγκατάσταση Django-cache-utils2
Χρήση
από cache_utils2 Cached εισαγωγής, ακυρώνουν
cached (60)
def foo (x, y = 0):
& Nbsp? Εκτύπωσης »foo ονομάζεται '
& Nbsp? Επιστρέψει x + y
foo (1, 2) # foo καλείται
foo (1, y = 2)
foo (5, 6) # foo καλείται
foo (5, 6)
άκυρη (foo, {«x»: 1, 'y': 2})
foo (1, 2) # foo καλείται
foo (5, 6)
foo (x = 2) # foo καλείται
foo (x = 2)
κατηγορία Foo (αντικείμενο):
& Nbsp?cached (60)
& Nbsp? Def foo (self, x, y):
& Nbsp? Εκτύπωσης "foo ονομάζεται"
& Nbsp? Επιστρέψει x + y
obj = Foo ()
obj.foo (1,2) # foo καλείται
obj.foo (1,2)
άκυρη (Foo.foo, {«x»: 1, 'y': 2})
obj.foo (1,2) # foo καλείται
Django παράδειγμα
από django.db μοντέλα εισαγωγής
από cache_utils2 Cached εισαγωγής, ακυρώνουν
κατηγορία CityManager (models.Manager):
& Nbsp? # Μνήμης cache αποτέλεσμα μέθοδο. «Εαυτού» παράμετρος αγνοείται
& Nbsp?cached (60 * 60 * 24)
& Nbsp? Προεπιλογή def (αυτο):
& Nbsp? Self.active επιστροφής () [0]
& Nbsp? # Μνήμης cache αποτέλεσμα μέθοδο. «Εαυτού» παράμετρος αγνοείται, args και
& Nbsp? Τα # kwargs χρησιμοποιούνται για την κατασκευή του κλειδιού μνήμης cache
& Nbsp?cached (60 * 60 * 24)
& Nbsp? Def να πάρει (self, * args, ** kwargs):
& Nbsp? Επιστροφή σούπερ (CityManager, αυτο) σήματα αναφοράς ανά (* args, ** kwargs)
τάξη Πόλη (models.Model):
& Nbsp? # ... Δηλώσεις τομέα
& Nbsp? Αντικείμενα = CityManager ()
& Nbsp? # Μεθόδου μοντέλο μνήμης cache Django παράδειγμα αποτέλεσμα με παράδειγμα PK
& Nbsp?cached (30, ποικίλουν «self.pk» =)
& Nbsp? Def has_offers (αυτο):
& Nbsp? Επιστροφή self.offer_set.count ()> 0
# Ακύρωση των πρότυπων μεθόδων
άκυρη (City.has_offers, {'self.pk »: 1}
Σημειώσεις
Αν διακοσμημένα επιστρέφει cache_utils2.NO_CACHE μνήμη cache θα παρακαμφθεί.
δοκιμές Τρέξιμο
. Πάρτε τον πηγαίο κώδικα και να εκτελέσετε runtests.py
Απαιτήσεις :
- Python
- Django
Τα σχόλια δεν βρέθηκε