キーテイクアウト
- 基本を理解する: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サーバーをセットアップした後、Redis用のPythonバインディングをインストールする必要があります。このコマンドを使用してインストールしてください:
Redis-Pyインターフェイスは、DjangoによってネイティブにサポートされるバインディングまたはDjango-RedisおよびRedisパッケージを使用しています。 Redisサーバーがlocalhost(127.0.0.1)で実行されていることを考えると、
Redisキャッシングをアプリケーションで構成するために、port = 6379、settings.py:に次のコードを追加します。$ 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>このコマンドは、ユーザー名、電子メール、2つのパスワードなどのスーパーユーザーの詳細を入力するように求めます。
スーパーユーザーの作成に正常に作成した後、ローカルサーバーを起動し、ブラウザでこのURLを入力します:http://127.0.0.1:8000/admin/。下の画像は、あなたが取得するページを示しています。
$ django-admin startproject cachedproject
ログインするには、スーパーユーザーの資格情報を提供し、次のようにモデルにデータを入力してください。
$ <span>cd cachedproject </span>アプリケーションの内部で、テンプレートフォルダーを作成し、その内部でlist_all.htmlファイルを作成します。とりあえず、HTMLファイルを空にしたままにします。 views.pyファイルを開き、次のように見せます:
プロジェクトの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>このビューを使用してアプリケーションを実行するたびに、SQLクエリが作成されます。この場合、3つのクエリが2.60ミリ秒かかりました。そのため、毎回同じデータのSQLクエリを作成しないようにするために、ビューキャッシングを実装します。
キャッシュ
名前が示すように、ビューキャッシュキャッシュには、個々のジュンゴビューの結果のキャッシュが含まれます。このセクションでは、ビューキャッシングを実装します。これを行うには、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>(60*15)は、@cache_pageに渡された引数です。キャッシュタイムアウトを秒単位で表します。ホームビューは15分間キャッシュされます
同じビューにアクセスして、ページを更新します。以下に描かれた結果を取得します。
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>上の画像では、データがキャッシュから取得されているため、0のSQLクエリが実行されていることがわかります。これにより、ユーザーにキャッシュされたコンテンツを提供することにより、サーバーの負荷を減らすことができます。
テンプレートフラグメントキャッシュ
このキャッシュには、プロジェクトのテンプレートの特定の部分をキャッシュすることが含まれます。テンプレートに重度の計算がある部分がある場合、テンプレートフラグメントキャッシングが役立ちます。このキャッシングを実装するには、これらのタグを使用します:{%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>結論として、Djangoでのキャッシュを理解することは、高性能Webアプリケーションの作成を検討しているWeb開発者にとって不可欠です。この記事は、Djangoでのキャッシュに関する包括的なガイドを提供し、キャッシュの利点、Djangoでのキャッシュのセットアップ、実装のベストプラクティスなどのトピックをカバーしています。この知識を武装して、バックエンドWeb開発者は、パフォーマンスを最適化するためにDjangoプロジェクトにキャッシュを自信を持って組み込むことができます。
この記事を楽しんだ場合は、SitePointでDjangoの記事をもう少しチェックしてください。
以上がDjangoキャッシングの包括的なガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

PythonとCは、メモリ管理と制御に大きな違いがあります。 1。Pythonは、参照カウントとガベージコレクションに基づいて自動メモリ管理を使用し、プログラマーの作業を簡素化します。 2.Cには、メモリの手動管理が必要であり、より多くの制御を提供しますが、複雑さとエラーのリスクが増加します。どの言語を選択するかは、プロジェクトの要件とチームテクノロジースタックに基づいている必要があります。

科学コンピューティングにおけるPythonのアプリケーションには、データ分析、機械学習、数値シミュレーション、視覚化が含まれます。 1.numpyは、効率的な多次元配列と数学的関数を提供します。 2。ScipyはNumpy機能を拡張し、最適化と線形代数ツールを提供します。 3. Pandasは、データ処理と分析に使用されます。 4.matplotlibは、さまざまなグラフと視覚的な結果を生成するために使用されます。

PythonまたはCを選択するかどうかは、プロジェクトの要件に依存するかどうかは次のとおりです。1)Pythonは、簡潔な構文とリッチライブラリのため、迅速な発展、データサイエンス、スクリプトに適しています。 2)Cは、コンピレーションと手動メモリ管理のため、システムプログラミングやゲーム開発など、高性能および基礎となる制御を必要とするシナリオに適しています。

Pythonは、データサイエンスと機械学習で広く使用されており、主にそのシンプルさと強力なライブラリエコシステムに依存しています。 1)Pandasはデータ処理と分析に使用され、2)Numpyが効率的な数値計算を提供し、3)SCIKIT-LEARNは機械学習モデルの構築と最適化に使用されます。これらのライブラリは、Pythonをデータサイエンスと機械学習に理想的なツールにします。

Pythonを1日2時間学ぶだけで十分ですか?それはあなたの目標と学習方法に依存します。 1)明確な学習計画を策定し、2)適切な学習リソースと方法を選択します。3)実践的な実践とレビューとレビューと統合を練習および統合し、統合すると、この期間中にPythonの基本的な知識と高度な機能を徐々に習得できます。

Web開発におけるPythonの主要なアプリケーションには、DjangoおよびFlaskフレームワークの使用、API開発、データ分析と視覚化、機械学習とAI、およびパフォーマンスの最適化が含まれます。 1。DjangoandFlask Framework:Djangoは、複雑な用途の迅速な発展に適しており、Flaskは小規模または高度にカスタマイズされたプロジェクトに適しています。 2。API開発:フラスコまたはdjangorestFrameworkを使用して、Restfulapiを構築します。 3。データ分析と視覚化:Pythonを使用してデータを処理し、Webインターフェイスを介して表示します。 4。機械学習とAI:Pythonは、インテリジェントWebアプリケーションを構築するために使用されます。 5。パフォーマンスの最適化:非同期プログラミング、キャッシュ、コードを通じて最適化

Pythonは開発効率でCよりも優れていますが、Cは実行パフォーマンスが高くなっています。 1。Pythonの簡潔な構文とリッチライブラリは、開発効率を向上させます。 2.Cのコンピレーションタイプの特性とハードウェア制御により、実行パフォーマンスが向上します。選択を行うときは、プロジェクトのニーズに基づいて開発速度と実行効率を比較検討する必要があります。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

WebStorm Mac版
便利なJavaScript開発ツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。
