from flask import Flask, jsonify, request, render_template app = Flask(__name__) incomes = [ { 'description': 'engineer', 'amount': 5000 }, { 'description': 'cleaner', 'amount': 1000 } ] @app.route('/', methods=["GET"]) def frontend(): return render_template("index.html") @app.route('/incomes', methods=['GET']) def get_incomes(): return jsonify(incomes) @app.route('/incomes/average', methods=["GET"]) def avg(): salaries = [] for inc in incomes: salaries.append(int(inc["amount"])) return str(sum(salaries)/len(salaries)) @app.route('/income', methods=['POST']) def add_income(): if(request.headers.get('x-api-key') != "secretp4ssw0rd"): return '', 401 incomes.append(request.get_json()) return '', 204 @app.route('/income/', methods=['GET']) def get_income(desc): try: return jsonify([inc for inc in incomes if inc['description'] == desc]) except: return '', 404 @app.route('/income/', methods=['DELETE']) def del_income(desc): if(request.headers.get('x-api-key') != "secretp4ssw0rd"): return '', 401 for inc in incomes: if inc['description'] == desc: incomes.remove(inc) return '', 204 @app.after_request def apply_caching(response): response.headers["Access-Control-Allow-Origin"] = "*" response.headers["Access-Control-Allow-Methods"] = "*" response.headers["Access-Control-Allow-Headers"] = "*" return response