Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pymysql
- # from Database import database as dbi
- from flask import Flask
- from flask_restful import Resource, Api, abort, reqparse
- app = Flask(__name__)
- api = Api(app)
- # initializ parser
- parser = reqparse.RequestParser()
- # db = dbi.Database()
- with Database() as db:
- userList = db.getAllUsers()
- # GET function for user
- class User(Resource):
- def get(self, id=0):
- if(id==0):
- return userList
- else:
- return {db.getUser(id)}
- # POST function for user
- class AddUser(Resource):
- def get(self):
- return userList
- def post(self):
- # add parser agruments
- parser.add_argument("firstName")
- parser.add_argument("lastName")
- parser.add_argument("email")
- args = parser.parse_args()
- db.AddUser(args["firstName"], args["lastName"], args["email"])
- return {'success': True}
- class Email(Resource):
- def get(self, id):
- return {userList[id].email}
- def checkName(id):
- if id not in userList:
- abort(404, success=False)
- # return {'success': False}
- import pymysql
- class Database:
- def __init__(self):
- host = "127.0.0.1"
- user = "root"
- password = ""
- db = "API"
- self.con = pymysql.connect(
- host=host,
- user=user,
- password=password,
- db=db,
- cursorclass=pymysql.cursors.DictCursor,
- autocommit=True,
- )
- self.cur = self.con.cursor()
- def __enter__(self):
- return self.con
- def __exit__(self, exc_type, exc_val, exc_tb):
- self.commit()
- self.con.close()
- def close(self):
- self.con.close()
- def commit(self):
- self.con.commit()
- def execute(self, sql, params=None):
- self.cur.execute(sql, params or ())
- def fetchall(self):
- return self.cur.fetchall()
- def fetchone(self):
- return self.cur.fetchone()
- def query(self, sql, params=None):
- self.cur.execute(sql, params or ())
- return self.fetchall()
- def getUser(self, id):
- sql = "SELECT * from users where id = %d"
- # self.cur.execute(sql, (id))
- result = self.query(sql)
- return result
- def getAllUsers(self):
- sql = "SELECT * from users"
- result = self.query(sql)
- # result = self.cur.fetchall()
- return result
- def AddUser(self, firstName, lastName, email):
- sql = (
- "INSERT INTO `users` (`firstName`, `lastName`, `email`) VALUES (%s, %s, %s)"
- )
- self.execute(sql, (firstName, lastName, email))
- # File paths and params
- api.add_resource(User, "/users/<int:id>", '/users')
- api.add_resource(AddUser, "/AddUser")
- api.add_resource(Email, "/email/<int:id>")
- if __name__ == "__main__":
- app.run(debug=True)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement