-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.py
109 lines (89 loc) · 2.51 KB
/
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
from flask import Flask, request, jsonify, render_template
app = Flask(__name__)
class MyOperations:
"""Class for handling operations
"""
def __init__(self, num1=None, num2=None) -> None:
"""Constructor for operations
:param num1: Number 1
:type num1: Int
:param num2: Number 2
:type num2: Int
:return : None
"""
self._num1 = num1
self._num2 = num2
@property
def num1(self):
"""Getter for num1
:return : Number 1
:rtype : Int
"""
return self._num1
@property
def num2(self):
"""Getter for num2
:return : Number 2
:rtype : Int
"""
return self._num2
@num1.setter
def num1(self, val):
"""Setter for num1
:param val: Number 1
:type val: Int
:retturn : None
"""
self._num1 = val
@num2.setter
def num2(self, val):
"""Setter for num2
:param val: Number 2
:type val: Int
:retturn : None
"""
self._num2 = val
def add(self):
"""Add two numbers
"""
return self.num1 + self.num2
def subt(self):
"""Subtract two numbers
"""
return self.num1 - self.num2
def mul(self):
"""Multiply two numbers
"""
return self.num1 * self.num2
def div(self):
""" Divide two numbers
"""
return self.num1 / self.num2
@app.route("/")
def home():
# logger.debug("home loaded")
return render_template("index.html")
@app.route('/<string:operation>', methods=['GET'])
def calculate(operation):
# logger.debug("operation started")
num1 = float(request.args.get('num1', 0))
# logger.debug("got 1st number")
num2 = float(request.args.get('num2', 0))
# logger.debug("got 2nd number")
op_obj = MyOperations(num1,num2)
result = "ERROR"
if operation == 'add':
# logger.debug("addition performed")
result = op_obj.add()
elif operation == 'subtract':
# logger.debug("subtraction performed")
result = op_obj.subt()
elif operation == 'multiply':
# logger.debug("multiplication performed")
result = op_obj.mul()
elif operation == 'divide':
# logger.debug("division performed")
result = op_obj.div()
return jsonify({"result": result})
if __name__ == '__main__':
app.run(debug=False,host="0.0.0.0", port = 5000)