36 lines
1.0 KiB
Python
36 lines
1.0 KiB
Python
from flask import Flask, request, jsonify
|
|
from flask_sqlalchemy import SQLAlchemy
|
|
from flask_cors import CORS
|
|
|
|
app = Flask(__name__)
|
|
CORS(app, resources={r"/*": {"origins": "*"}})
|
|
|
|
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://postgres:yourpassword@postgres-service:5432/calculator'
|
|
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
|
|
|
|
db = SQLAlchemy(app)
|
|
|
|
class Calculation(db.Model):
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
expression = db.Column(db.String(100))
|
|
result = db.Column(db.String(100))
|
|
|
|
with app.app_context():
|
|
db.create_all()
|
|
|
|
@app.route('/save', methods=['POST'])
|
|
def save_calc():
|
|
data = request.json
|
|
calc = Calculation(expression=data['expression'], result=data['result'])
|
|
db.session.add(calc)
|
|
db.session.commit()
|
|
return jsonify({'message': 'Saved'}), 201
|
|
|
|
@app.route('/history', methods=['GET'])
|
|
def history():
|
|
calcs = Calculation.query.all()
|
|
return jsonify([{'expression': c.expression, 'result': c.result} for c in calcs])
|
|
|
|
if __name__ == '__main__':
|
|
app.run(host='0.0.0.0', port=5000)
|