Django-cache purge-kait adalah aplikasi dapat digunakan kembali Django untuk menangani Cache pembatalan.
Aplikasi ini pada dasarnya menyediakan mekanisme untuk dengan mudah menghubungkan ke model callback untuk membatalkan cache front-end Anda bila diperlukan.
Saat ini, hanya backend pernis diimplementasikan, tetapi desain diciptakan dengan backends lain yang mungkin dalam pikiran.
Penggunaan
Add 'cache_purge_hooks' ke INSTALLED_APPS Anda.
Model berpura-pura #our
kelas Post (models.Model):
& Nbsp; title = models.CharField (max_length = 200)
& Nbsp; slug = models.SlugField (unik = True, max_length = 200)
& Nbsp; tubuh = models.TextField (kosong = True, null = True)
dari cache_purge_hooks impor cache_purge_hook
cache_purge_hook (Post)
Seperti ditunjukkan di atas, cache_purge_hooks modul berisi fungsi cache_purge_hook. Lulus sebagai argumen pertama model. Mekanisme Cache piggy-punggung metode model contoh yang get_absolute_url () dan membersihkan cache backend untuk itu url tertentu.
Jika hal apapun memiliki beberapa url terkait, mendefinisikan sebuah metode get_absolute_urls kustom () yang mengembalikan daftar url untuk membatalkan:
Kelas Kategori (models.Model):
& Nbsp; name = models.CharField (max_length = 200)
& Nbsp; slug = models.SlugField (unik = True, max_length = 200)
& Nbsp; title = models.CharField (max_length = 127, kosong = True)
& Nbsp; def get_absolute_url (self):
& Nbsp; & nbsp; & nbsp; kembali terbalik ("kategori", kwargs = {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Category": self.slug
& Nbsp; & nbsp; & nbsp; })
& Nbsp; get_absolute_urls def (diri):
& Nbsp; & nbsp; & nbsp; gau = self.get_absolute_url ()
& Nbsp; & nbsp; & nbsp; kembali [gau, reverse ('blog_home'),]
Dalam model di atas, kita memiliki posting blog Kategori Model. Ini metode get_absolute_url () terkait dengan rute bernama tertentu didefinisikan dalam urls.py, tetapi setiap perubahan ke kategori juga harus tercermin dalam halaman blog rumah (katakanlah misalnya, halaman rumah berisi tag awan semua kategori). Halaman yang harus batal jika informasi ini berubah.
Perhatikan Anda juga harus secara eksplisit ambil get_absolute_url () nilai. Ini tidak akan dipanggil jika get_absolute_urls () ada.
Jika itu tidak sesuai dengan keinginan Anda, Anda juga dapat lulus sebagai argumen 2 untuk purge_related_blog fungsi yang mengambil contoh dan mengembalikan daftar url.
Sebagai contoh:
dari facebook_comments.models impor FacebookCommentCache
def purge_related_blog (misalnya):
& Nbsp; pr = urlparse.urlparse (instance.url)
& Nbsp; kembali [pr.path,]
cache_purge_hook (FacebookCommentCache, purge_related_blog)
Hal ini juga berguna karena dalam kasus di atas, situs ini menggunakan aplikasi dapat digunakan kembali lagi (facebook_cached_comments). . Ini jauh lebih baik daripada batuk-kode pihak ketiga untuk menyediakan get_absolue_urls ()
Persyaratan :
- Python
- Django
- python-pernis
Komentar tidak ditemukan