Djangoでページをキャッシュ化して爆速で表示するための設定

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)
]

最後に

キャッシュを利用すれば高速にサイトを表示することができますが…
初回アクセス時などのキャッシュ生成時には、キャッシュを保存しなくていけないので通常よりも遅くなってしまいます。
なので、キャッシュを保存する時間は極端に短く設定しない方がいいと思います。