From b5a6f0a94f5be8ea7c515e13da6ada810fcdeead Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Sun, 14 Apr 2019 18:57:39 +0200 Subject: [PATCH] Add first flask test --- .gitignore | 1 + server.py | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 .gitignore create mode 100644 server.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..98e6ef6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.db diff --git a/server.py b/server.py new file mode 100644 index 0000000..28e3543 --- /dev/null +++ b/server.py @@ -0,0 +1,38 @@ +from flask import Flask, request +from flask_restful import Resource, Api +from sqlalchemy import create_engine +from json import dumps +from flask.json import jsonify + +db_connect = create_engine('sqlite:///chinook.db') +app = Flask(__name__) +api = Api(app) + +class Employees(Resource): + def get(self): + conn = db_connect.connect() # connect to database + query = conn.execute("select * from employees") # This line performs query and returns json result + return {'employees': [i[0] for i in query.cursor.fetchall()]} # Fetches first column that is Employee ID + +class Tracks(Resource): + def get(self): + conn = db_connect.connect() + query = conn.execute("select trackid, name, composer, unitprice from tracks;") + result = {'data': [dict(zip(tuple (query.keys()) ,i)) for i in query.cursor]} + return jsonify(result) + +class Employees_Name(Resource): + def get(self, employee_id): + conn = db_connect.connect() + query = conn.execute("select * from employees where EmployeeId =%d " %int(employee_id)) + result = {'data': [dict(zip(tuple (query.keys()) ,i)) for i in query.cursor]} + return jsonify(result) + + +api.add_resource(Employees, '/employees') # Route_1 +api.add_resource(Tracks, '/tracks') # Route_2 +api.add_resource(Employees_Name, '/employees/') # Route_3 + + +if __name__ == '__main__': + app.run(port='5002')