Du kannst nicht mehr als 25 Themen auswählen
Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
56 Zeilen
1.4 KiB
Python
56 Zeilen
1.4 KiB
Python
vor 3 Jahren
|
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/<desc>', methods=['GET'])
|
||
|
def get_income(desc):
|
||
|
try:
|
||
|
return jsonify([inc for inc in incomes if inc['description'] == desc])
|
||
|
except:
|
||
|
return '', 404
|
||
|
|
||
|
@app.route('/income/<desc>', 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
|