Django-caching
ジャンゴ-キャッシング
何かをキャッシュすることは、高価な計算の結果を保存することで、次回必要になったときに実行しないようにします。 以下は、キャッシュがどのように機能するかを説明する擬似コードです-
Djangoには独自のキャッシングシステムが付属しており、動的ページを保存して、必要なときに再度計算することを回避できます。 Django Cacheフレームワークの良い点は、キャッシュできることです-
- 特定のビューの出力。
- テンプレートの一部。
- サイト全体。
Djangoでキャッシュを使用するには、最初にキャッシュが留まる場所を設定する必要があります。 キャッシュフレームワークにはさまざまな可能性があります-キャッシュはデータベース、ファイルシステム、またはメモリに直接保存できます。 設定はプロジェクトの settings.py ファイルで行われます。
データベースでのキャッシュのセットアップ
プロジェクトのsettings.pyファイルに次を追加するだけです-
これが機能し、設定を完了するには、キャッシュテーブル「my_table_name」を作成する必要があります。 このためには、次のことを行う必要があります-
ファイルシステムでのキャッシュのセットアップ
プロジェクトのsettings.pyファイルに次を追加するだけです-
メモリ内のキャッシュのセットアップ
これはキャッシュの最も効率的な方法です。これを使用するには、メモリキャッシュ用に選択したPythonバインディングライブラリに応じて、次のオプションのいずれかを使用できます。
Or
サイト全体のキャッシュ
Djangoでキャッシュを使用する最も簡単な方法は、サイト全体をキャッシュすることです。 これは、プロジェクトのsettings.pyでMIDDLEWARE_CLASSESオプションを編集することにより行われます。 オプションに次を追加する必要があります-
ここで順序が重要であることに注意してください。更新はFetchミドルウェアの前に来る必要があります。
その後、同じファイルで、設定する必要があります-
ビューをキャッシュする
サイト全体をキャッシュしたくない場合は、特定のビューをキャッシュできます。 これは、Djangoに付属の cache_page デコレーターを使用して行われます。 viewArticles ビューの結果をキャッシュしたいとしましょう-
ご覧のとおり、 cache_page には、ビューの結果をパラメーターとしてキャッシュする秒数がかかります。 上記の例では、結果は15分間キャッシュされます。
注-上記のビューがマップされる前に見たように-
URLはパラメーターを取得しているため、異なる呼び出しはそれぞれ個別にキャッシュされます。 たとえば、/myapp/articles/02/2007へのリクエストは、/myapp/articles/03/2008に個別にキャッシュされます。
ビューのキャッシュは、url.pyファイルで直接行うこともできます。 その後、次の結果は上記と同じになります。 myapp/url.pyファイルを編集して、関連するマップされたURL(上記)を変更します-
そして、もちろん、myapp/views.pyでは不要になりました。
テンプレートフラグメントのキャッシュ
テンプレートの一部をキャッシュすることもできます。これは cache タグを使用して行われます。 hellol テンプレートを見てみましょう-
コンテンツブロックをキャッシュするには、テンプレートが次のようになります-
上記のように、キャッシュタグには2つのパラメーターがあります。ブロックをキャッシュする時間(秒単位)とキャッシュフラグメントに指定する名前です。