added
This commit is contained in:
98
k8s/carpool/python_rest.py
Normal file
98
k8s/carpool/python_rest.py
Normal file
@@ -0,0 +1,98 @@
|
||||
from flask import Flask, request, jsonify
|
||||
from flask_sqlalchemy import SQLAlchemy
|
||||
from flask_marshmallow import Marshmallow, fields
|
||||
from flask_cors import CORS
|
||||
|
||||
# Init app
|
||||
app = Flask(__name__)
|
||||
|
||||
#enable CORS
|
||||
CORS(app)
|
||||
# connect to already existing and running Database
|
||||
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://postgres:cnbc@postgres:5432/esentricar'
|
||||
|
||||
# not important but otherwise we get a warning every time
|
||||
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
|
||||
|
||||
#Init db
|
||||
db = SQLAlchemy(app)
|
||||
#Init ma
|
||||
ma = Marshmallow(app)
|
||||
|
||||
# Pool Car Class/Model
|
||||
class Pool_Car(db.Model):
|
||||
|
||||
#define table, in our case already existing
|
||||
__tablename__ = 'cars'
|
||||
car_id = db.Column(db.Integer, primary_key=True)
|
||||
license_plate = db.Column(db.String(30), unique=True)
|
||||
car_type = db.Column(db.String(20))
|
||||
fuel = db.Column(db.String(20))
|
||||
number_of_seats =db.Column(db.Integer)
|
||||
|
||||
|
||||
# set class attributes
|
||||
def __init__(self, license_plate, car_type, fuel, number_of_seats):
|
||||
self.license_plate = license_plate
|
||||
self.car_type = car_type
|
||||
self.fuel = fuel
|
||||
self.number_of_seats = number_of_seats
|
||||
|
||||
class Pool_CarSchema(ma.Schema):
|
||||
class Meta:
|
||||
fields = ('car_id','license_plate','car_type','fuel','number_of_seats')
|
||||
|
||||
# Init schema
|
||||
pool_car_schema = Pool_CarSchema()
|
||||
pool_cars_schema = Pool_CarSchema(many=True)
|
||||
|
||||
|
||||
# Create a Pool_Car
|
||||
@app.route('/car', methods=['POST'])
|
||||
def add_pool_car():
|
||||
# Get request data as json
|
||||
car_entity = request.get_json()
|
||||
license_plate= car_entity.get('license_plate')
|
||||
car_type = car_entity.get('car_type')
|
||||
fuel = car_entity.get('fuel')
|
||||
number_of_seats = car_entity.get('number_of_seats')
|
||||
|
||||
new_pool_car = Pool_Car(license_plate, car_type, fuel, number_of_seats)
|
||||
|
||||
db.session.add(new_pool_car)
|
||||
db.session.commit()
|
||||
|
||||
return pool_car_schema.jsonify(new_pool_car)
|
||||
|
||||
# Get car_id,license_plate,car_type of all products of the table
|
||||
@app.route('/car', methods=['GET'])
|
||||
def get_pool_cars():
|
||||
all_pool_cars = Pool_Car.query.all()
|
||||
result = pool_cars_schema.dump(all_pool_cars)
|
||||
car_list= []
|
||||
for item in result:
|
||||
car_details = { "car_id":None, "license_plate":None, "car_type":None}
|
||||
car_details['car_id'] = item['car_id']
|
||||
car_details['license_plate'] = item['license_plate']
|
||||
car_details['car_type'] = item['car_type']
|
||||
car_list.append(car_details)
|
||||
return jsonify(car_list)
|
||||
|
||||
# Get Single Products
|
||||
@app.route('/car/<car_id>', methods=['GET'])
|
||||
def get_pool_car(car_id):
|
||||
pool_car = Pool_Car.query.get(car_id)
|
||||
return pool_car_schema.jsonify(pool_car)
|
||||
|
||||
# Delete Product
|
||||
@app.route('/car/<car_id>', methods=['DELETE'])
|
||||
def delete_pool_car(car_id):
|
||||
pool_car = Pool_Car.query.get(car_id)
|
||||
db.session.delete(pool_car)
|
||||
db.session.commit()
|
||||
|
||||
return pool_car_schema.jsonify(pool_car)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
app.run(debug=True) #port='5002'
|
||||
Reference in New Issue
Block a user