From 8801a538667ab316b0e72258d6d90b81d7da7a26 Mon Sep 17 00:00:00 2001 From: Lazlo Westerhof Date: Fri, 25 Oct 2024 11:58:55 +0200 Subject: [PATCH] PoC with response caching --- app.py | 8 ++++++++ general/general.py | 3 +++ requirements.txt | 1 + 3 files changed, 12 insertions(+) diff --git a/app.py b/app.py index a2154adc..02df6fb0 100644 --- a/app.py +++ b/app.py @@ -9,6 +9,7 @@ from typing import Any, Dict, Optional from flask import Flask, g, redirect, request, Response, send_from_directory, session, url_for +from flask_caching import Cache from flask_session import Session from flask_wtf.csrf import CSRFProtect @@ -128,6 +129,13 @@ def load_admin_setting() -> Dict[str, Any]: # Start Flask-Session Session(app) +# Configure the cache +cache = Cache(app, config={ + 'CACHE_TYPE': 'FileSystemCache', + 'CACHE_DIR': '/tmp', + 'CACHE_DEFAULT_TIMEOUT': 300 +}) + # Start monitoring thread for extracting tech support information # Monitor signal file can be set to empty to completely disable monitor thread monitor_enabled: bool = app.config.get("MONITOR_SIGNAL_FILE", "/var/www/yoda/show-tech.sig") != "" diff --git a/general/general.py b/general/general.py index 20cad295..40fde8f0 100644 --- a/general/general.py +++ b/general/general.py @@ -6,6 +6,8 @@ from flask import Blueprint, redirect, render_template, Response, url_for from flask_wtf.csrf import CSRFError +from app import cache + general_bp = Blueprint('general_bp', __name__, template_folder='templates/general', static_folder='static/general', @@ -13,6 +15,7 @@ @general_bp.route('/') +@cache.cached(timeout=60) def index() -> Response: return render_template('index.html') diff --git a/requirements.txt b/requirements.txt index c0217f8a..9b5efea9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,6 +2,7 @@ python-irodsclient==2.2.0 Flask==3.0.2 flask-session==0.6.0 Flask-WTF==1.2.1 +Flask-Caching-2.3.0 mod-wsgi==5.0.0 pyjwt[crypto]==2.8.0 requests==2.32.0