blokdata/blokdata/app.py

35 lines
770 B
Python
Raw Normal View History

2020-05-13 14:59:53 +00:00
from .sheet_data import google_sheet_to_json
2020-05-13 13:40:40 +00:00
from flask import Flask
from flask_cors import CORS, cross_origin
2020-05-13 16:20:20 +00:00
from flask_caching import Cache
import configparser
# Setup Flask app
2020-05-13 13:40:40 +00:00
app = Flask(__name__)
2020-05-13 16:20:20 +00:00
# Add CORS
2020-05-13 13:40:40 +00:00
cors = CORS(app)
app.config['CORS_HEADERS'] = 'Content-Type'
2020-05-13 16:20:20 +00:00
# Add caching
cache = Cache(app, config={'CACHE_TYPE': 'simple'})
# Read the config file
2020-05-13 13:40:40 +00:00
CONFIG = configparser.ConfigParser()
CONFIG.read("config.ini")
SPREADSHEET_ID = CONFIG["Google"]["SHEET_ID"]
RANGE_NAME = CONFIG["Google"]["RANGE_NAME"]
2020-05-13 16:20:20 +00:00
CACHE_TIMEOUT = int(CONFIG["Cache"]["TIMEOUT"])
2020-05-13 13:40:40 +00:00
@app.route('/data.json')
2020-05-13 16:37:15 +00:00
@cross_origin()
2020-05-13 16:40:26 +00:00
@cache.cached(timeout=CACHE_TIMEOUT)
2020-05-13 13:40:40 +00:00
def data_json():
return google_sheet_to_json(SPREADSHEET_ID, RANGE_NAME)
if __name__ == "__main__":
app.run()