Django-cache-pampadumi-Hooks ay isang magagamit muli Django app upang mahawakan ang cache ng pagpapawalang-bisa.
Talaga ay nagbibigay ng app na ito ng mekanismo upang madaling Hook sa callback modelo upang magpawalang-bisa ang iyong front-end cache kapag kinakailangan.
Sa kasalukuyan, tanging isang barnisan backend ay ipinatupad, ngunit ang disenyo ay nilikha ng iba pang mga posibleng backends nasa isip.
Paggamit
Idagdag 'cache_purge_hooks' sa iyong INSTALLED_APPS.
#our magpanggap modelo
Mag-post ng klase (models.Model):
& Nbsp; title = models.CharField (MAX_LENGTH = 200)
& Nbsp; pagong = models.SlugField (natatanging = True, MAX_LENGTH = 200)
& Nbsp; katawan = models.TextField (blangko = True, null = True)
mula sa pag-import cache_purge_hooks cache_purge_hook
cache_purge_hook (Post)
Tulad ng ipinapakita sa itaas, cache_purge_hooks module ay naglalaman ng isang function cache_purge_hook. Dumaan sa bilang ang unang argumento isang modelo. Ang mekanismo ng cache ng piggy-bina-back sa get_absolute_url () method ang halimbawa ng modelo at kini-clear ang cache ng backend para sa partikular na url.
Kung ang anumang halimbawa ay maraming mga kaugnay na mga url, tukuyin ang isang pasadyang get_absolute_urls () method na nagbabalik ng isang listahan ng mga url sa magpawalang-bisa:
Kategorya ng klase (models.Model):
& Nbsp; name = models.CharField (MAX_LENGTH = 200)
& Nbsp; pagong = models.SlugField (natatanging = True, MAX_LENGTH = 200)
& Nbsp; title = models.CharField (MAX_LENGTH = 127, blangko = True)
& Nbsp; def get_absolute_url (sa sarili):
& Nbsp; & nbsp; & nbsp; bumalik reverse ("kategorya", kwargs = {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Kategorya": self.slug
& Nbsp; & nbsp; & nbsp; })
& Nbsp; def get_absolute_urls (sa sarili):
& Nbsp; & nbsp; & nbsp; gau = self.get_absolute_url ()
& Nbsp; & nbsp; & nbsp; bumalik [gau, baligtarin ('blog_home'),]
Sa modelo sa itaas, mayroon kaming isang modelo Kategorya blog post. Ito ay get_absolute_url () method ay nakatali sa isang partikular na pinangalanang ruta ng nilinaw sa urls.py, ngunit anumang pagbabago sa kategorya ay dapat ding makita sa blog home page (sabihin nating halimbawa, ang home page ay naglalaman ng tag na ulap ng lahat ng mga kategorya). Dapat na invalidated pahina na kapag ang impormasyon na ito ay nagbago.
Pansinin dapat ka ring tahasang grab ang halaga get_absolute_url (). Hindi ito makakuha ng tinatawag na kung get_absolute_urls () umiiral na.
Kung hindi iyon ayon sa gusto mo, maaari mo ring pumasa bilang isang ika-2 argumento sa purge_related_blog isang function na tumatagal ng isang instance at nagbabalik ng isang listahan ng mga url.
Halimbawa:
mula facebook_comments.models-import FacebookCommentCache
def purge_related_blog (halimbawa):
& Nbsp; PR = urlparse.urlparse (instance.url)
& Nbsp; bumalik [pr.path,]
cache_purge_hook (FacebookCommentCache, purge_related_blog)
Ito ay kapaki-pakinabang din dahil sa kaso sa itaas, ang site ay gumagamit ng isa pang magagamit muli app (facebook_cached_comments). . Ito ay magkano ang mas mahusay kaysa sa pag-hack up ng isang third party na code upang magbigay ng isang get_absolue_urls ()
Mga Kinakailangan :
- Python
- Django
- python-barnisan
Mga Komento hindi natagpuan