# Import necessary objects from flask import Flask, jsonify, request # Initialize app app = Flask(__name__) # Existing todos todos = {} # Post, GET requests @app.route("/todo", methods=["GET", "POST"]) def todo(): if request.method == "POST": try: new_id = max(todos.keys()) + 1 # Generate new ID except ValueError: # todos is empty new_id = 0 try: todos[new_id] = request.json["todo"] # Put todo in dict except KeyError: resp = jsonify({"status": "error", "error": "missing key 'todo'"}) resp.status_code = 400 return resp # Exception error return jsonify({"Status": "Created", "id": new_id}) # Return status of task with ID elif request.method == "GET": try: return jsonify(todos) # Get all todos and post todo to an existing list except ValueError: # invalid json jsonify({"Status": "failed to jsonify todos"}) # KeyError Exception # DELETE, GET requests @app.route("/todo/", methods=["GET", "DELETE"]) def single_todo(id_): if request.method == "DELETE": try: del todos[id_] # Deletes a single todo by ID return jsonify({"Status": "Deleted"}) # Return status of item except Exception: return jsonify({"Status": "Item does not exist"}) # KeyError Exception elif request.method == "GET": try: return jsonify({id_: todos[id_]}) except Exception: return jsonify({"Status": "Item does not exist"}) # KeyError Exception # Run app if __name__ == "__main__": app.run(port=5000, debug=True)