メモ_Flaskアプリでキャッシュを有効にして高速化

Flaskを用いたWebアプリとかで、Flask-Cachingというパッケージを使ってキャッシュを有効することで高速化できます。

@cache~デコレータをつけるだけという、とてもシンプルな方法。以下メモ。

 

準備:

Flask-Cachingをpipでインストール

pip install Flask-Caching
仕様例(コードサンプル):

from flask import Flask, render_template, request
from flask_caching import Cache
import mysql.connector
from threading import Lock
from configparser import ConfigParser


app = Flask(__name__)

# コンフィグファイルの読み込み
config = ConfigParser()
config.read('config.ini')

# キャッシュの設定
cache = Cache(app, config={'CACHE_TYPE': 'simple'})

# スレッドセーフなMySQL接続を確保するためのロックを作成
lock = Lock()


@cache.memoize()
def get_db_connection():
    return mysql.connector.connect(
        host=config.get('Database', 'host'),
    ~中略~
    )


# ルート定義
@app.route('/')
def index():
    current_number = request.args.get('number', default=1, type=int)
    ~以下、処理が続く~