検索
ホームページバックエンド開発Python チュートリアルキャッシュ管理に Flask-Cache を使用する方法

キャッシュ管理に Flask-Cache を使用する方法

Aug 02, 2023 pm 05:30 PM
cacheflaskキャッシュ管理

Flask-Cache をキャッシュ管理に使用する方法

キャッシュはアプリケーションのパフォーマンスを向上させる重要な手段の 1 つであり、計算集約的または時間のかかる演算結果を保存し、次に必要なときにそれらを直接使用できます。キャッシュされた結果を返すことで計算やデータベース クエリの繰り返しを回避し、応答速度を向上させます。 Flask を使用して Web アプリケーションを開発するプロセスでは、キャッシュ管理に Flask-Cache 拡張機能を使用できます。この記事では、キャッシュ管理に Flask-Cache を使用する方法と、対応するコード例を紹介します。

  1. Flask-Cache のインストール

まず、プロジェクトに Flask-Cache 拡張機能をインストールする必要があります。 pip コマンドでインストールできます。コマンド例は次のとおりです:

pip install flask-cache
  1. Initialize Flask-Cache

Flask アプリケーションのエントリ ファイルで、最初に以下に示すように、Flask-Cache モジュールをインポートし、必要に応じてキャッシュ ストレージ方法を選択する必要があります。

from flask import Flask
from flask_cache import Cache

app = Flask(__name__)

# 选择缓存的存储方式
cache = Cache(app, config={'CACHE_TYPE': 'simple'})

上記のコードでは、キャッシュ ストレージ方法としてシンプル モードを選択し、キャッシュ データを保存します。メモリ。シンプル モードに加えて、Flask-Cache は、実際のニーズに応じて選択できる Redis、ファイルシステムなどの他のキャッシュ モードも提供します。

  1. ビュー関数のキャッシュ

Flask-Cache を使用した後、@cache.cached デコレータを通じてビュー関数の結果をキャッシュできます。例は次のとおりです。

@app.route('/')
@cache.cached(timeout=60)  # 缓存结果60秒
def index():
    # 执行一些耗时的操作,如计算、数据库查询等
    # 返回结果
    return 'Hello, Flask!'

上の例では、インデックス ビュー関数をキャッシュしました。キャッシュされた結果の有効期間は 60 秒です。つまり、60 秒以内の同じリクエストは、ビュー関数を実行するコードの代わりにキャッシュされた結果。

  1. キャッシュのクリア

キャッシュをクリアする必要がある場合は、@cache.clear デコレータを使用してビュー関数を装飾できます。サンプル コードは次のとおりです。

@app.route('/clear_cache')
@cache.clear
def clear_cache():
    return 'Cache cleared!'

上記の例では、「/clear_cache」パスにアクセスすると、すべてのキャッシュがクリアされます。

  1. カスタム キャッシュ キー値

デフォルトでは、Flask-Cache はビュー関数の URL をキャッシュ キー値として使用しますが、キャッシュをカスタマイズしたい場合があります。キーの値。 @cache.cached デコレーターの make_key パラメーターを使用して、キャッシュ キー値をカスタマイズする機能を実装できます。サンプル コードは次のとおりです:

@app.route('/user/<username>')
@cache.cached(timeout=60, make_key=lambda view_name, **kwargs: f'user:{kwargs["username"]}')
def user(username):
    # 根据用户名查询用户信息
    # 返回结果
    return f'Hello, {username}!'

上記の例では、make_key パラメーターを使用してカスタマイズしましたユーザーのキャッシュ キーの値。形式は「ユーザー:ユーザー名」です。このように、有効期間内に同じユーザー名がビュー機能をリクエストした場合、キャッシュされた結果が直接返されます。

概要

Flask-Cache 拡張機能を使用すると、キャッシュ管理機能を簡単に実装し、アプリケーションの応答速度を向上させることができます。この記事では、キャッシュ管理に Flask-Cache を使用する方法を紹介し、対応するコード例を示します。 Flaskを使ってWebアプリケーションを開発する際のキャッシュ管理のお役に立てれば幸いです。

以上がキャッシュ管理に Flask-Cache を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Pythonリストをどのようにスライスしますか?Pythonリストをどのようにスライスしますか?May 02, 2025 am 12:14 AM

slicingapythonlistisdoneusingtheyntaxlist [start:stop:step] .hore'showitworks:1)startisthe indexofthefirstelementtoinclude.2)spotisthe indexofthefirmenttoeexclude.3)staptistheincrementbetbetinelements

Numpyアレイで実行できる一般的な操作は何ですか?Numpyアレイで実行できる一般的な操作は何ですか?May 02, 2025 am 12:09 AM

numpyallows forvariousoperationsonarrays:1)basicarithmeticlikeaddition、減算、乗算、および分割; 2)AdvancedperationssuchasmatrixMultiplication;

Pythonを使用したデータ分析では、配列はどのように使用されていますか?Pythonを使用したデータ分析では、配列はどのように使用されていますか?May 02, 2025 am 12:09 AM

Arraysinpython、特にnumpyandpandas、aresentialfordataanalysis、offeringspeedandeficiency.1)numpyarraysenable numpyarraysenable handling forlaredatasents andcomplexoperationslikemoverages.2)Pandasextendsnumpy'scapabivitieswithdataframesfortruc

リストのメモリフットプリントは、Pythonの配列のメモリフットプリントとどのように比較されますか?リストのメモリフットプリントは、Pythonの配列のメモリフットプリントとどのように比較されますか?May 02, 2025 am 12:08 AM

listsandnumpyarraysinpythonhavedifferentmemoryfootprints:listsaremoreflexiblellessmemory-efficient、whileenumpyarraysaraysareoptimizedfornumericaldata.1)listsstorereferencesto objects、with whowedaround64byteson64-bitedatigu

実行可能なPythonスクリプトを展開するとき、環境固有の構成をどのように処理しますか?実行可能なPythonスクリプトを展開するとき、環境固有の構成をどのように処理しますか?May 02, 2025 am 12:07 AM

toensurepythonscriptsbehaveCorrectlyAcrossDevelosment、staging、and Production、usetheseStrategies:1)環境variablesforsimplestetings、2)configurationfilesforcomplexsetups、and3)dynamicloadingforadaptability.eachtododododododofersuniquebentandrequiresca

Pythonアレイをどのようにスライスしますか?Pythonアレイをどのようにスライスしますか?May 01, 2025 am 12:18 AM

Pythonリストスライスの基本的な構文はリストです[start:stop:step]。 1.STARTは最初の要素インデックス、2。ストップは除外された最初の要素インデックスであり、3.ステップは要素間のステップサイズを決定します。スライスは、データを抽出するためだけでなく、リストを変更および反転させるためにも使用されます。

どのような状況で、リストは配列よりもパフォーマンスが向上しますか?どのような状況で、リストは配列よりもパフォーマンスが向上しますか?May 01, 2025 am 12:06 AM

ListSoutPerformArraysIn:1)ダイナミシジョンアンドフレーケンティオン/削除、2)ストーリングヘテロゼンダタ、および3)メモリ効率の装飾、ButmayhaveslightPerformancostsinceNASOPERATIONS。

PythonアレイをPythonリストに変換するにはどうすればよいですか?PythonアレイをPythonリストに変換するにはどうすればよいですか?May 01, 2025 am 12:05 AM

toconvertapythonarraytoalist、usetheList()constructororageneratorexpression.1)importhearraymoduleandcreateanarray.2)useList(arr)または[xforxinarr] toconvertoalistは、largedatatessを変えることを伴うものです。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

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

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン