Djangoでページをキャッシュ化して爆速で表示するための設定
Djangoでページをキャッシュ化し、爆速でサイトを表示する方法です。
ページごとキャッシュするので、ブログやポータルサイトなどの静的なコンテンツ向きの設定になります。
1. settings.pyの設定
settings.pyに下記のコードを追加します。
settings.py
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
'LOCATION': 'my_cache_table',
}
}
「my_cache_table」は、キャッシュを保存するテーブル名になります。
2. キャッシュ用テーブルの作成
下記のコードをターミナルから実行することでキャッシュ用テーブルが生成されます。
$ python manage.py createcachetable
3. キャッシュするURLの設定
urls.pyに
from django.views.decorators.cache import cache_page
とキャッシュしたいページに
cache_page(秒)(view)
を設定します。
urls.py sample
from django.urls import path
from django.views.decorators.cache import cache_page # 追記
from . import views
urlpatterns = [
path('', cache_page(60*60*24)(views.ArticleListView.as_view()), name='article_list'), # cache_page(秒)(view)
]
最後に
キャッシュを利用すれば高速にサイトを表示することができますが…
初回アクセス時などのキャッシュ生成時には、キャッシュを保存しなくていけないので通常よりも遅くなってしまいます。
なので、キャッシュを保存する時間は極端に短く設定しない方がいいと思います。