Created
September 20, 2017 05:29
-
-
Save projectyotta/9d700c8a592a6e59a8e76724f2760298 to your computer and use it in GitHub Desktop.
run a local API in python
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from flask import Flask, request | |
from flask_restful import Resource, Api | |
from sqlalchemy import create_engine | |
from json import dumps | |
from flask.ext.jsonpify 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 where ") # 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/<employee_id>') # Route_3 | |
if __name__ == '__main__': | |
app.run(port='5002') | |
#print("this is some piece of sample code") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment