簡體   English   中英

在 Flask 中將緩存控制添加到我的 python 應用程序

[英]Add cache-control to my python app in Flask

我正在對我的網站進行一些測試。 我的應用程序是使用燒瓶開發的,我想在下面的函數中添加 cach-control "max-age=3600":

from flask import Flask, jsonify, abort   
from waitress import serve
import pandas as pd
from time import time as t

from load_data.connexion_to_blob import connexion_to_blob
from load_data.load_recos import load_recos

# CONFIG FILE
import configparser
config = configparser.ConfigParser()
config.read('config.ini')

# CHARGE  DATA FROM BLOB
mode = 'blob'
blob_service_client = connexion_to_blob("AZURE_STORAGE_CONNECTION_STRING")

load_recos(blob_service_client, langue='fr', mode='blob')


# LOAD DATA IN APP
recos_fr_file = config['PATH']['recos_fr_file']

recos_fr = pd.read_pickle(recos_fr_file)

recos_dict = {'fr': recos_fr}


app = Flask(__name__)

@app.route('/<langue>/<program_id>/<top>')
def get_reco(langue, program_id, top=10):
    t_all = t()
    top = int(top)

    if program_id not in list(recos_dict[langue].keys()):
        abort(404, description="programId not found")

    else:
        recos_list = recos_dict[langue][program_id][:top]
        json_output = {
            "data": [
                {"programId": programId}
                for programId in recos_list
            ]
        }
        print("temps exec total: ", (t() - t_all))
        print('---------------------------------')

        return jsonify(json_output)

if __name__ == '__main__':
    serve(app, host='X.X.X.X', port=XX, threads=8) 

我已經檢查了一些文檔,我的問題是這應該在什么級別完成? 謝謝你。

我們可以使用以下方法添加緩存控制:

@app.after_request 
def apply_caching(response):
    response.headers['Cache-Control'] = 'public, max-age=3600,stale-while-revalidate=600, stale-if-error=259200'
    return response

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM