Python Script Flask for learning API getting started
#!/bin/bash
apt-get update apt-get install -y python3-pip python3-flask # Create application file cat <<EOF > /home/app.py from flask import Flask, jsonify, request app = Flask(__name__) transactions = [ {"id": 1, "amount": 100, "category": "Food", "description": "Lunch"}, {"id": 2, "amount": 500, "category": "Rent", "description": "Monthly rent"} ] @app.route("/health") def health(): return jsonify({"status": "ok"}) @app.route("/transactions", methods=["GET"]) def get_transactions(): return jsonify(transactions) @app.route("/transactions", methods=["POST"]) def add_transaction(): data = request.json new_id = max([t["id"] for t in transactions]) + 1 if transactions else 1 data["id"] = new_id transactions.append(data) return jsonify(data), 201 @app.route("/transactions/<int:tid>", methods=["GET"]) def get_transaction(tid): t = next((t for t in transactions if t["id"] == tid), None) return jsonify(t) if t else (jsonify({"error": "Not found"}), 404) @app.route("/transactions/<int:tid>", methods=["PUT"]) def update_transaction(tid): t = next((t for t in transactions if t["id"] == tid), None) if not t: return jsonify({"error": "Not found"}), 404 t.update(request.json) return jsonify(t) @app.route("/transactions/<int:tid>", methods=["DELETE"]) def delete_transaction(tid): global transactions transactions = [t for t in transactions if t["id"] != tid] return jsonify({"result": True}) if __name__ == "__main__": app.run(host="0.0.0.0", port=80) EOF # Create systemd service cat <<EOF > /etc/systemd/system/flask-app.service [Unit] Description=Flask Application After=network.target [Service] User=root ExecStart=/usr/bin/python3 /home/app.py Restart=always [Install] WantedBy=multi-user.target EOF # Start service systemctl daemon-reload systemctl enable flask-app.service systemctl restart flask-app.service
Comments
Post a Comment