Django-cache-təmizləmək-qarmaqlar cache etibarsız hesab idarə etmək üçün bir reusable Django app edir.
Bu app əsasən asanlıqla lazım zaman ön-end cache qüvvədən model callbacks daxil çəngəl üçün bir mexanizm təmin edir.
Hal-hazırda, yalnız bir lak backend həyata keçirilir, lakin dizayn nəzərə digər mümkün backends ilə yaradılmışdır.
istifadə
Sizin INSTALLED_APPS üçün 'cache_purge_hooks "əlavə edin.
#our iddia model
class Post (models.Model):
& Nbsp; title = models.CharField (max_length = 200)
& Nbsp; slug = models.SlugField (unikal = Doğrudur, max_length = 200)
& Nbsp; Bədən = models.TextField (boş = True = True null)
cache_purge_hooks idxal cache_purge_hook dən
cache_purge_hook (Post)
Yuxarıda göstərildiyi kimi, cache_purge_hooks modul bir funksiyası cache_purge_hook ehtiva edir. Ilk arqument kimi bir model keçir. cache mexanizmi model misal var get_absolute_url () metodu piggy-arxa və xüsusi url üçün backend cache təmizləyir.
Hər hansı bir instansiya çox əlaqədar url varsa, qüvvədən URL siyahısını qaytarır xüsusi get_absolute_urls () metodu müəyyən edir:
sinif Kateqoriya (models.Model):
& Nbsp; name = models.CharField (max_length = 200)
& Nbsp; slug = models.SlugField (unikal = Doğrudur, max_length = 200)
& Nbsp; title = models.CharField (max_length = 127, boş = True)
& Nbsp; def get_absolute_url (özünü):
& Nbsp; & nbsp; & nbsp; Əks ("kateqoriya", kwargs = {qayıtmaq
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Kateqoriya" self.slug
& Nbsp; & nbsp; & nbsp; })
& Nbsp; def get_absolute_urls (özünü):
& Nbsp; & nbsp; & nbsp; lampa = self.get_absolute_url ()
& Nbsp; & nbsp; & nbsp; [(blog_home) tərs Gau] qayıtmaq
Yuxarıda model, biz bir blog post Kateqoriya model var. Bu get_absolute_url () metodu urls.py müəyyən edilmiş xüsusi adlı marşrutu bağlıdır, lakin daha heç bir dəyişiklik də blog ana səhifə əksini tapmalıdır (demək məsələn, ana səhifə Bütün kateqoriyalar bir tag cloud var). Bu informasiya dəyişib zaman səhifə etibarsız olmalıdır.
Siz də açıq-aşkar get_absolute_url () dəyəri qamarlamaq lazımdır edək. Bu mövcud) (get_absolute_urls əgər adlı almaq deyil.
Ki, sizin təvəccöh deyil varsa, siz də bir misal edir və url bir siyahısını qaytarır bir funksiyası purge_related_blog üçün 2-ci arqument kimi keçə bilər.
Məsələn:
facebook_comments.models olan FacebookCommentCache idxal
def purge_related_blog (nümunəsi):
& Nbsp; pr = urlparse.urlparse (instance.url)
& Nbsp; [pr.path] qayıtmaq
cache_purge_hook (FacebookCommentCache, purge_related_blog)
Yuxarıdakı halda, site bir reusable app (facebook_cached_comments) istifadə edir, çünki bu da faydalıdır. . Bu) (a get_absolue_urls təmin etmək üçün üçüncü tərəf kodu qədər Hacking daha yaxşıdır
tələblər
- Python
- Django
- python-lak
Şərhlər tapılmadı