czyszczenie-haki django-cache jest wielokrotnego użytku aplikacji Django do obsługi pamięci podręcznej unieważnienie.
Ta aplikacja po prostu udostępnia mechanizm łatwe podłączenie do modelu wywołań zwrotnych, aby unieważnić swój front-end cache, gdy są potrzebne.
Obecnie tylko zaplecza lakier jest realizowany, ale projekt został stworzony z innych możliwych backendów w umyśle.
Zastosowanie
Dodaj "cache_purge_hooks" do INSTALLED_APPS.
#our udawana modelu
Klasa Post (models.Model):
& Nbsp; title = models.CharField (max_length = 200)
& Nbsp; ślimak = models.SlugField (unikalny = True, max_length = 200)
& Nbsp; Ciało = models.TextField (puste = True, null = True)
z cache_purge_hooks importu cache_purge_hook
cache_purge_hook (post)
Jak pokazano powyżej, moduł cache_purge_hooks zawiera cache_purge_hook funkcji. Przejść jako pierwszy argument model. Mechanizmu cache piggy-plecami na metody modelu instancji get_absolute_url () i czyści pamięć podręczną zaplecza dla danego adresu URL.
Jeśli każdy przypadek ma wiele podobnych adresów, zdefiniowanie metody niestandardowe get_absolute_urls (), która zwraca listę adresów do unieważnienia:
Klasa Kategoria (models.Model):
& Nbsp; name = models.CharField (max_length = 200)
& Nbsp; ślimak = models.SlugField (unikalny = True, max_length = 200)
& Nbsp; title = models.CharField (max_length = 127, puste = True)
& Nbsp; get_absolute_url def (self):
& Nbsp; & nbsp; & nbsp; powrót odwrotnego ("kategorii", kwargs = {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Kategoria": self.slug
& Nbsp; & nbsp; & nbsp; })
& Nbsp; def get_absolute_urls (self):
& Nbsp; & nbsp; & nbsp; gau = self.get_absolute_url ()
& Nbsp; & nbsp; & nbsp; powrót [Gau, odwrócić ("blog_home")]
W powyższym modelu, mamy blogu Kategoria modelu. Jest to metoda get_absolute_url () jest związany z konkretnym imieniem trasie określonej w urls.py, ale każda zmiana w kategorii musi być również widoczny na stronie blogu domu (powiedzmy na przykład, strona główna zawiera chmury tagów wszystkich kategorii). Że strona musi być unieważnione, gdy informacja ta zostanie zmieniona.
Zauważ, należy również wyraźnie pobieramy wartość get_absolute_url (). Nie będzie się nazywa, jeśli get_absolute_urls () istnieje.
Jeśli nie jest to do gustu, można również przekazać jako argument 2 do purge_related_blog funkcję, która pobiera i zwraca instancji listę adresów URL.
Na przykład:
z facebook_comments.models importować FacebookCommentCache
purge_related_blog def (instancja):
& Nbsp; pr = urlparse.urlparse (instance.url)
& Nbsp; powrót [pr.path,]
cache_purge_hook (FacebookCommentCache, purge_related_blog)
Jest to również przydatne, ponieważ w przypadku powyżej, witryna wykorzystuje inną aplikację (facebook_cached_comments wielokrotnego użytku). . Jest to o wiele lepiej niż włamanie kodeks osób trzecich w celu udostępnienia get_absolue_urls ()
Wymagania :
- Python
- Django
- python-lakier
Komentarze nie znaleziono