Advertisement
Guest User

Untitled

a guest
Feb 24th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.76 KB | None | 0 0
  1. import pymysql
  2. # from Database import database as dbi
  3. from flask import Flask
  4. from flask_restful import Resource, Api, abort, reqparse
  5.  
  6. app = Flask(__name__)
  7. api = Api(app)
  8.  
  9. # initializ parser
  10. parser = reqparse.RequestParser()
  11.  
  12. # db = dbi.Database()
  13.  
  14. with Database() as db:
  15. userList = db.getAllUsers()
  16.  
  17. # GET function for user
  18. class User(Resource):
  19.  
  20. def get(self, id=0):
  21. if(id==0):
  22. return userList
  23. else:
  24. return {db.getUser(id)}
  25.  
  26.  
  27. # POST function for user
  28. class AddUser(Resource):
  29.  
  30. def get(self):
  31. return userList
  32.  
  33. def post(self):
  34. # add parser agruments
  35. parser.add_argument("firstName")
  36. parser.add_argument("lastName")
  37. parser.add_argument("email")
  38. args = parser.parse_args()
  39. db.AddUser(args["firstName"], args["lastName"], args["email"])
  40. return {'success': True}
  41.  
  42. class Email(Resource):
  43. def get(self, id):
  44. return {userList[id].email}
  45.  
  46.  
  47. def checkName(id):
  48. if id not in userList:
  49. abort(404, success=False)
  50. # return {'success': False}
  51.  
  52.  
  53. import pymysql
  54.  
  55.  
  56. class Database:
  57. def __init__(self):
  58. host = "127.0.0.1"
  59. user = "root"
  60. password = ""
  61. db = "API"
  62.  
  63. self.con = pymysql.connect(
  64. host=host,
  65. user=user,
  66. password=password,
  67. db=db,
  68. cursorclass=pymysql.cursors.DictCursor,
  69. autocommit=True,
  70. )
  71. self.cur = self.con.cursor()
  72.  
  73. def __enter__(self):
  74. return self.con
  75.  
  76. def __exit__(self, exc_type, exc_val, exc_tb):
  77. self.commit()
  78. self.con.close()
  79.  
  80. def close(self):
  81. self.con.close()
  82.  
  83. def commit(self):
  84. self.con.commit()
  85.  
  86. def execute(self, sql, params=None):
  87. self.cur.execute(sql, params or ())
  88.  
  89. def fetchall(self):
  90. return self.cur.fetchall()
  91.  
  92. def fetchone(self):
  93. return self.cur.fetchone()
  94.  
  95. def query(self, sql, params=None):
  96. self.cur.execute(sql, params or ())
  97. return self.fetchall()
  98.  
  99. def getUser(self, id):
  100. sql = "SELECT * from users where id = %d"
  101. # self.cur.execute(sql, (id))
  102. result = self.query(sql)
  103. return result
  104.  
  105. def getAllUsers(self):
  106. sql = "SELECT * from users"
  107. result = self.query(sql)
  108. # result = self.cur.fetchall()
  109. return result
  110.  
  111. def AddUser(self, firstName, lastName, email):
  112. sql = (
  113. "INSERT INTO `users` (`firstName`, `lastName`, `email`) VALUES (%s, %s, %s)"
  114. )
  115. self.execute(sql, (firstName, lastName, email))
  116.  
  117.  
  118. # File paths and params
  119. api.add_resource(User, "/users/<int:id>", '/users')
  120. api.add_resource(AddUser, "/AddUser")
  121. api.add_resource(Email, "/email/<int:id>")
  122.  
  123. if __name__ == "__main__":
  124. app.run(debug=True)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement