Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save burning-croissant/05566452b7d8c8988f6ddff69e668afd to your computer and use it in GitHub Desktop.
Save burning-croissant/05566452b7d8c8988f6ddff69e668afd to your computer and use it in GitHub Desktop.
[Recipe of Code] GET /users/<uid>/cars
import pandas as pd
import pymysql
import requests
from flask import Flask, request
from flask_restful import Api, Resource
host = 'your_mysql_ip'
user = 'your_username'
password = 'your_password'
database = 'rest'
class User(Resource):
""" /users/<uid> """
def get(self, uid):
# Cannot read timestamp
query = f'SELECT id, username, email FROM rest.Users where id={uid}'
conn = pymysql.connect(host=host, user=user, password=password, database=database)
dataframe = pd.read_sql(sql=query, con=conn)
conn.close()
ret_user = dataframe.to_dict('record')[0]
ret = { 'data': ret_user }
return ret, 200
class UserHasCars(Resource):
""" /users/<uid>/cars """
def get(self, uid):
resp_dict = requests.get(f'http://localhost:5555/users/{uid}').json()
ret_user = resp_dict['data']
query = f'''
SELECT C.id, C.name FROM Cars C
INNER JOIN UserHasCars UC ON UC.uid={ret_user["id"]} AND C.id=UC.cid
'''
conn = pymysql.connect(host=host, user=user, password=password, database=database)
dataframe = pd.read_sql(sql=query, con=conn)
conn.close()
ret_cars = dataframe.to_dict('record')
ret = { 'data': ret_cars }
return ret, 200
if __name__ == '__main__':
app = Flask(__name__)
api = Api(app)
api.add_resource(User, '/users/<uid>')
api.add_resource(UserHasCars, '/users/<uid>/cars')
app.run(host='0.0.0.0', port=5555)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment