Djangoキャッシングの包括的なガイド
キーテイクアウト
- 基本を理解する:Djangoでのキャッシュの基本的な概念を把握します。これには、応答時間を高速化することでサーバーの負荷を削減し、ユーザーエクスペリエンスを向上させることの重要性が含まれます。 セットアップと構成:djangoプロジェクトをセットアップし、ローカルメモリ、ファイルベース、データベース、redisキャッシュなどのさまざまなキャッシング方法を構成する方法を学習します。 高度なキャッシュ用のRedis:djangoでのキャッシュにRedisを使用して飛び込みます。これは、迅速なデータ検索機能を提供し、高性能および分散システムに適しています。
- 実用的な実装:ビューキャッシュ、テンプレートフラグメントキャッシング、およびウェブアプリケーションのパフォーマンスを大幅に最適化するためのサイトごとのキャッシュなどの実用的なキャッシング技術を探索します。 パフォーマンスの利点:Djangoのキャッシュ戦略を実装することで達成できるアプリケーションの速度と効率の劇的な改善を認識し、最終的にはより良いエンドユーザーエクスペリエンスにつながります。
- この記事では、DjangoでのキャッシュとWeb開発全体について包括的な理解を得ることができます。キャッシュとは何か、キャッシュの利点、Djangoでキャッシュをセットアップする方法、Djangoがサポートするバックエンドシステム、およびキャッシュのベストプラクティスについて学びます。 記事の終わりまでに、バックエンドのWeb開発者として、キャッシュをしっかりと理解し、最高のパフォーマンスのためにDjangoプロジェクトでそれを実装する方法を理解しています。
- Djangoフレームワークは、最近Web開発者が使用する最も人気のあるバックエンドフレームワークの1つです。開発者として、高いパフォーマンスでWebアプリケーションを構築することは、リストの目標の1つである必要があります。 Djangoには、インメモリキャッシュ、ファイルベースのキャッシュ、データベースキャッシュなどなど、さまざまなキャッシュバックエンドを使用できるキャッシュフレームワークが付属しているため、Djangoで高性能のためにWebアプリケーションを構築することは面倒ではありません。 🎜> djangoキャッシングの紹介
- Web開発のキャッシュは、Webアプリケーションのパフォーマンスを向上させるためにWeb開発者が使用する手法です。すべてのWebアプリケーションには、ユーザーが一貫して利用したいリソースがあります。リソースは、簡単なWebページからデータベースに保存されているデータまで、何でもかまいません。キャッシュは、リソースにアクセスする速度を最大化する上で重要な役割を果たします。
Djangoキャッシングフレームワークは、開発者が頻繁にアクセスできるようにすることができる幅広いシナリオとユースケースを提供します。以下は、一般的なキャッシュシナリオです
ページキャッシング。これは、サイト上の頻繁に訪問されるページが完全にキャッシュされているシナリオです。アプリケーションは、ページのキャッシュバージョンをページのキャッシュバージョンを取得し、リクエストが行われたときにそれらをレンダリングします。
データベースクエリキャッシング。データベースクエリキャッシュは、情報をデータベースに頻繁にリクエストすることに依存するアプリケーションにとって良いアプローチです。一連のリクエストは、データベースをヒットする必要なく、同じキャッシュデータによって満たすことができるため、データベースのヒットを下げてサーバーの応答時間を高速化します。
-
セッションと認証キャッシュ。キャッシュを使用して、合理化されたユーザーエクスペリエンスと応答時間が短縮される場合があります。キャッシュされたデータにより、ユーザーはアプリケーションの認証されたセクションを簡単に移動できるため、キャッシュ認証とセッションの詳細は、冗長認証操作を減らすのに役立ちます。
Django Cachingの 利点 -
キャッシュは、データが本質であり、速度がより重要であるこの最新の環境で、Web開発者にとってより有利になりました。これらは、キャッシングの利点の一部です:
パフォーマンスが向上しました。キャッシュは、サーバーの負荷を削減することにより、Webアプリケーションのパフォーマンスを向上させます。サーバーがアプリケーションからリクエストを取得すると、キャッシュは、以前にキャッシュされたデータを使用していくつかの要求が満たされることを保証します。これにより、サーバーがそれらの操作をゼロから実行する必要がなくなります。その結果、ユーザーのエクスペリエンスは全体的に改善され、反応時間が増加します。
応答時間の短縮。キャッシュは、データベースのヒットを減らすことで応答時間を最小限に抑えます。キャッシュにより、データを必要になるたびにデータベースから直接ではなく、便利な場所からデータを取得できます。一部のデータには、完了するのに時間がかかる高価な計算が必要なため、データベースから必要になるたびにデータを取得することは、すべてのデータに最適な選択ではないかもしれません。データを保存し、必要なときにいつでも利用できるようにすることにより、キャッシュはその日を節約します。
- リソースの最適化。 Webアプリケーションでデータまたはリソースをキャッシュすることで、同じリソースを出力する繰り返し操作を実行することなく、リソースにアクセスして取得可能になります。
-
djangoプロジェクトのセットアップ
このセクションの主なタスクは、仮想環境を作成し、プロジェクトに必要なモジュールをインストールすることです。仮想環境を作成するには、端末にこのコマンドを入力してください。 - プロジェクトのすべてのモジュールはこの環境内にインストールされます。そのため、使用を開始するには、アクティブ化する必要があります。
Windowsではこれを使用してください:
- およびmacosまたはlinuxで、これを使用してください:
$ python <span>-m venv project </span>
Djangoを正常にインストールした後、Djangoプロジェクトとアプリケーションを作成しましょう。 djangoプロジェクトを作成するには、実行されます:
$ .<span>\project\Scripts\activate </span>
プロジェクトのフォルダーに移動します。ここでは、Djangoアプリケーションを作成します。このコマンドを実行してください:
$ <span>source project/bin/activate </span>
そしてこれを実行してください:
$ pip <span>install django </span>
プロジェクトとアプリケーションの作成に成功した後、アプリケーションをプロジェクトに登録する必要があります。 settings.pyファイルを開き、installed_appsリストを次のようにします。
$ django-admin startproject cachedproject
注:djangoプロジェクトでアプリケーションを使用するには、installed_appsリストに登録する必要があります。 さあ、Djangoフレームワークが正常にインストールされていることを確認するために、テストしましょう。ターミナルで、このコマンドを実行します:
下の図の出力を取得していることを確認してください。
$ <span>cd cachedproject </span>
URLをコピーして、Webブラウザに貼り付けます。予想される出力を以下に示します。
注:SitePointでDjangoプロジェクトとDjangoアプリをすばやく開始することの詳細を読むことができます。
キャッシュを使用するには、Djangoプロジェクトで構成する必要があるため、このセクションでは、Djangoで利用可能なさまざまなキャッシュシステムを構成する方法について説明します。 ローカルメモリキャッシング
その名前が示すように、ローカルメモリキャッシュは、時にはlocmemと略されることがあり、ホスティングマシンのRAMにキャッシュされたデータを保存します。
djangoは、設定.pyファイルに代替キャッシングメカニズムを提供しない場合、デフォルトのキャッシングシステムとしてローカルメモリキャッシュを自動的に使用します。そのスレッドセーフ、迅速で、レスポンシブなキャッシュ技術は注目に値しますローカルメモリキャッシュは、あらゆる種類のクロスプロセスキャッシュを防ぎ、個々のプロセスが個別のプライベートキャッシュインスタンスを維持するプロセスごとのメカニズムを含むため、生産環境での使用にはそれほど適していません。それにもかかわらず、それはまだ良い選択です
アプリケーションでローカルメモリキャッシングを構成するには、settings.pyファイルに次のコードを追加します。ファイルベースのキャッシュ
ファイルベースのキャッシュでは、各キャッシュ値はシリアル化され、キャッシュ時にファイルに個別に保持されます。小規模なアプリケーションや、メモリベースのキャッシュが実用的ではない場合に役立ちます。
このキャッシングシステムの欠点は、メモリベースのキャッシュと比較して比較的遅いことです。
アプリケーションでファイルベースのキャッシングを構成するには、settings.pyファイルに次のコードを追加します:
Windowsにいる場合は、このようなドライブ文字で場所のパスを開始することを確認してください。
$ python <span>-m venv project </span>
データベースキャッシュ
ファイルにキャッシュを保存し、マシンのRAMをホストすることとは別に、Djangoはデータベースにキャッシュを保存する機能も提供します。
これは、高速で適切にインデックスされたデータベースサーバーを持っている場合に最適に機能します。アプリケーションでデータベースキャッシングを使用するには、settings.py:
内部に次のコードを追加します。次のコマンドを使用して、キャッシュを使用する前に上記のセットアップに記載されているデータベーステーブルを作成します。
$ .<span>\project\Scripts\activate </span>
上記のコマンドは、Djangoのデータベースキャッシュシステムが期待する適切な形式でデータベース内にテーブルを作成します。テーブルの名前は場所から取られます。この場合、テーブルの名前はmy_cache_tableになります
memcachedキャッシング$ <span>source project/bin/activate </span>
Memcachedは、データベースアクセスを減らしてサイトのパフォーマンスを増やすために、いくつかの人気企業でもWeb開発者が使用するメモリ内キャッシュシステムです。
locmemキャッシュとは対照的に、memcachedはデーモンとして動作します。これは、Memcachedサーバーが直接的なユーザーインタラクションとは無関係に背景プロセスとして実行されることを意味します。したがって、memcachedはマシンに個別にインストールする必要があります。次に、Djangoアプリケーションで、PylibMCやPymemcacheなどのバインディングの1つをインストールおよび構成して、Memcachedを使用します。Djangoアプリケーションは、以下に示すように、キャッシュ設定、場所、IPアドレス、その他の詳細を追加することにより、Memcached Daemonにリンクできます。
Memcachedテクノロジーは、高速データストレージと取得用に設計されているため、読み取りまたはクエリの高いロードを備えたアプリケーションに特に適しています。
Memcachedの欠点は、データがメモリに保存されるため、サーバーがクラッシュすると失われるということです。redis
Redisは、キャッシュに使用できるインメモリデータベースです。 Redis Inmemoryデータストレージを使用してデータをキャッシュします。 Redisはその迅速さと適応性で有名であり、分散システムと高性能キャッシュに最適なオプションです。
アプリケーションでRedisを使用してデータをキャッシュするには、ローカルまたはリモートマシンで実行されるRedisサーバーが必要です。マシンにRedisをセットアップするには、Redis Getting Guideをお読みください。$ pip <span>install django </span>
Redis-Pyインターフェイスは、DjangoによってネイティブにサポートされるバインディングまたはDjango-RedisおよびRedisパッケージを使用しています。 Redisサーバーがlocalhost(127.0.0.1)で実行されていることを考えると、
Redisキャッシングをアプリケーションで構成するために、port = 6379、settings.py:に次のコードを追加します。$ python <span>-m venv project
</span>
ログイン後にコピーログイン後にコピーログイン後にコピーログイン後にコピーログイン後にコピー
$ python <span>-m venv project </span>
Redisの複雑さと外部サービスへの依存は、そのトレードオフです。 Redisのインストールと構成は、他の特定のキャッシュバックエンドよりも難しい場合があります。オンラインでは、2番目のサーバーと維持が必要です。 Redisの使用は、外部サービスに依存します。 Redisに問題があるか、ダウンしても、アプリケーションのキャッシュ機能が影響を受ける可能性があります。 Redisを使用してDjangoでキャッシュを実行します
わかりました、それで十分な理論です。このセクションでは、Djangoアプリケーションでキャッシュを実行する方法を示します。キャッシュの3つの形式のキャッシュに焦点を当てます
キャッシュ
を表示します- テンプレートフラグメントキャッシュ
- 敷地ごとのキャッシュ
- しかし、各キャッシングフォームを詳細に実行する前に、最初にプロジェクトを適切にセットアップしましょう。モデルを作成、登録、および設定し、アプリケーションのURLを構成し、テンプレートを作成し、Djangoデバッグツールバーをインストールし、構成します。 cachedApplicationアプリ内で、モデルを開き、次のように見せます:
次に、admin.pyファイルを開き、このコードを貼り付けます:
このコードスニペットは、django管理ダッシュボードのモデルプログラマーを登録します。
$ .<span>\project\Scripts\activate </span>
また、これを実行してください:
$ <span>source project/bin/activate </span>
Djangoでは、ターミナルを介して、および管理ダッシュボードを介して、2つの方法でモデルを入力できます。しかし、簡単にするために、管理ダッシュボードを使用します。管理者ダッシュボードはスーパーユーザー専用であるため、作成する必要があります。端末で、次のコマンドを実行します:
$ pip <span>install django </span>
スーパーユーザーの作成に正常に作成した後、ローカルサーバーを起動し、ブラウザでこのURLを入力します:http://127.0.0.1:8000/admin/。下の画像は、あなたが取得するページを示しています。
$ django-admin startproject cachedproject
ログインするには、スーパーユーザーの資格情報を提供し、次のようにモデルにデータを入力してください。
$ <span>cd cachedproject </span>
プロジェクトのurls.pyファイルにホームビューを登録しましょう。 CachedProjectフォルダー内で、urls.pyファイルを開き、このコードを貼り付けます。
$ python <span>-m venv project </span>
Djangoデバッグツールバーをインストールしましょう。これは、開発者がDjangoアプリケーションのパフォーマンスを監視するのに役立つPythonパッケージであり、データベースクエリ、HTTPリクエスト、テンプレートのレンダリング時間などに関する詳細な情報を提供します。したがって、端末に、このコマンドを入力してください:
$ .<span>\project\Scripts\activate </span>
django-debug-toolbarを構成するには、settings.pyファイルを開き、installed_appsリストを次のように編集します。
$ <span>source project/bin/activate </span>
$ pip <span>install django </span>
これの前にも来るはずです:
$ django-admin startproject cachedproject
次のようにRedisキャッシュの構成を追加します:
$ <span>cd cachedproject </span>
また、
このコードを設定に追加してください。$ python manage.py startapp cachedapplication
最後に、urls.pyファイルでデバッグツールバーURLを構成しましょう。インポートのすぐ下で、このコードラインを追加します:
INSTALLED_APPS <span>= [ </span> <span>'django.contrib.admin', </span> <span>'django.contrib.auth', </span> <span>'django.contrib.contenttypes', </span> <span>'django.contrib.sessions', </span> <span>'django.contrib.messages', </span> <span>'django.contrib.staticfiles', </span> <span># new application added </span> <span>'cachedapplication', </span><span>] </span>
urlpatternsリストの内部このコードを追加します:
$ python manage.py runserver
ここまで到達したので、私たちは行ってもいいです。サーバーを実行し、このURLをブラウザに貼り付けます:http://127.0.0.1:8000/home/。下の画像は、私たちが取得したページを示しています。
<span># CACHES dictionary which contains caching configurations. </span>CACHES <span>= { </span> <span># a cache alias or name. In this case, we use "default" as the alias. </span> <span>"default": { </span> <span># Here, we're using the in-memory cache backend. </span> <span>"BACKEND": "django.core.cache.backends.locmem.LocMemCache", </span> <span># LOCATION parameter gives a unique name or identifier to this cache instance. </span> <span>"LOCATION": "unique-snowflake", </span> <span>} </span><span>} </span>
キャッシュ
名前が示すように、ビューキャッシュキャッシュには、個々のジュンゴビューの結果のキャッシュが含まれます。このセクションでは、ビューキャッシングを実装します。これを行うには、view.pyファイルをいくつか変更します。それを開いて、このインポートを追加します:
ビューのすぐ上で
このデコレーターを追加します:
<span># A CACHES dictionary, which contains caching configurations. </span>CACHES <span>= { </span> <span># we use "default" as the alias. </span> <span>"default": { </span> <span># Here, we're using the file-based cache backend. </span> <span>"BACKEND": "django.core.cache.backends.filebased.FileBasedCache", </span> <span># LOCATION parameter to specify the file system path where cached data will be stored. </span> <span>"LOCATION": "/var/tmp/django_cache", </span> <span>} </span><span>} </span>
同じビューにアクセスして、ページを更新します。以下に描かれた結果を取得します。
CACHES <span>= { </span> <span>"default": { </span> <span>"BACKEND": "django.core.cache.backends.filebased.FileBasedCache", </span> <span>"LOCATION": "C:/my/path-to/file", </span> <span>} </span><span>} </span>
テンプレートフラグメントキャッシュ
このキャッシュには、プロジェクトのテンプレートの特定の部分をキャッシュすることが含まれます。テンプレートに重度の計算がある部分がある場合、テンプレートフラグメントキャッシングが役立ちます。このキャッシングを実装するには、これらのタグを使用します:{%cache%}、{%cache%}、および{%endcache%}。 {%Cache%}タグは、キャッシュタイムアウトと、特定のキャッシュフラグメントを識別するための一意のキャッシュキーの2つの引数を取ります。
このキャッシュ技術を実装する前に、プロジェクトを実行してみてください。以下の画像は、私たちが得るものを示しています。
合計時間は220.26msで、3つのSQLクエリが7.75msで実行されます。
キャッシュ技術を実装しましょう。テンプレートのファイルの上部では、{%Cache%}を介してキャッシュをロードしており、{%Cache 500 Programmers%}および{%EndCache%}。
もう一度プロジェクトを実行すると、以下の写真が表示されます。$ python <span>-m venv project </span>
上の画像では、キャッシュが実装された後に結果が改善されたことがわかります。
敷地ごとのキャッシュ
そしてこれらの行を追加します:
結論
$ .<span>\project\Scripts\activate </span>
この記事を楽しんだ場合は、SitePointでDjangoの記事をもう少しチェックしてください。
以上がDjangoキャッシングの包括的なガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Pythonは、データサイエンス、Web開発、自動化タスクに適していますが、Cはシステムプログラミング、ゲーム開発、組み込みシステムに適しています。 Pythonは、そのシンプルさと強力なエコシステムで知られていますが、Cは高性能および基礎となる制御機能で知られています。

2時間以内にPythonの基本を学ぶことができます。 1。変数とデータ型を学習します。2。ステートメントやループの場合などのマスター制御構造、3。関数の定義と使用を理解します。これらは、簡単なPythonプログラムの作成を開始するのに役立ちます。

PythonはゲームとGUI開発に優れています。 1)ゲーム開発は、2Dゲームの作成に適した図面、オーディオ、その他の機能を提供し、Pygameを使用します。 2)GUI開発は、TKINTERまたはPYQTを選択できます。 TKINTERはシンプルで使いやすく、PYQTは豊富な機能を備えており、専門能力開発に適しています。

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

Pythonは学習と使用が簡単ですが、Cはより強力ですが複雑です。 1。Python構文は簡潔で初心者に適しています。動的なタイピングと自動メモリ管理により、使いやすくなりますが、ランタイムエラーを引き起こす可能性があります。 2.Cは、高性能アプリケーションに適した低レベルの制御と高度な機能を提供しますが、学習しきい値が高く、手動メモリとタイプの安全管理が必要です。

Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。

限られた時間でPythonの学習効率を最大化するには、PythonのDateTime、時間、およびスケジュールモジュールを使用できます。 1. DateTimeモジュールは、学習時間を記録および計画するために使用されます。 2。時間モジュールは、勉強と休息の時間を設定するのに役立ちます。 3.スケジュールモジュールは、毎週の学習タスクを自動的に配置します。

Pythonは、初心者から上級開発者までのすべてのニーズに適した、そのシンプルさとパワーに非常に好まれています。その汎用性は、次のことに反映されています。1)学習と使用が簡単、シンプルな構文。 2)Numpy、Pandasなどの豊富なライブラリとフレームワーク。 3)さまざまなオペレーティングシステムで実行できるクロスプラットフォームサポート。 4)作業効率を向上させるためのスクリプトおよび自動化タスクに適しています。
