Advertisement
Guest User

Untitled

a guest
May 31st, 2017
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.36 KB | None | 0 0
  1. # import dependencies
  2. from flask import Flask, request
  3. from flask_restful import Resource, Api
  4. from flask_jwt import JWT, jwt_required, current_identity
  5. from werkzeug.security import safe_str_cmp
  6. import MySQLdb
  7. from sqlalchemy import *
  8. from sqlalchemy.orm import *
  9.  
  10. # app initialization
  11. app = Flask(__name__)
  12. api = Api(app)
  13. app.debug = True
  14. app.config['SECRET_KEY'] = 'super-secret'
  15.  
  16. # database configuration
  17. userpass = 'mysql://fjaraya:starbucks@'
  18. basedir = 'fjaraya.mysql.pythonanywhere-services.com'
  19. dbname = '/fjaraya$mydatabase'
  20. app.config['SQLALCHEMY_DATABASE_URI'] = userpass + basedir + dbname
  21. engine = create_engine(app.config['SQLALCHEMY_DATABASE_URI'], echo=True)
  22. metadata = MetaData()
  23.  
  24. # define table
  25. players_table = Table('players', metadata,
  26. Column('id', Integer, primary_key=True),
  27. Column('name', String(100)),
  28. Column('score', Integer)
  29. )
  30.  
  31. metadata.create_all(engine) # create the table
  32. Session = sessionmaker(bind=engine)
  33.  
  34. class Player(object):
  35. def __init__(self, name, score):
  36. self.name = name
  37. self.score = score
  38.  
  39. def __repr__(self):
  40. return "<Player('%s','%s')>" % (self.name, self.score)
  41.  
  42. mapper(Player, players_table)
  43.  
  44. # user data
  45. class User(object):
  46. def __init__(self, id, username, password):
  47. self.id = id
  48. self.username = username
  49. self.password = password
  50.  
  51. def __str__(self):
  52. return "User(id='%s')" % self.id
  53.  
  54. users = [
  55. User(1, 'user1', '1234'),
  56. User(2, 'user2', '123qwe'),
  57. ]
  58.  
  59. username_table = {u.username: u for u in users}
  60. userid_table = {u.id: u for u in users}
  61.  
  62. # auth functions
  63. def authenticate(username, password):
  64. user = username_table.get(username, None)
  65. if user and safe_str_cmp(user.password.encode('utf-8'), password.encode('utf-8')):
  66. return user
  67.  
  68. def identity(payload):
  69. user_id = payload['identity']
  70. return userid_table.get(user_id, None)
  71.  
  72. jwt = JWT(app, authenticate, identity)
  73.  
  74. # app logic
  75. class MyApp(Resource):
  76. def get(self):
  77. #insert data
  78. session = Session()
  79. the_player = Player(name='python', score=1)
  80. session.add(the_player)
  81. session.commit()
  82.  
  83. return {'status': 'OK', 'response': the_player}
  84. @jwt_required()
  85. def put(self):
  86. data = request.form['data']
  87. return {'status': 'OK', 'data': data}
  88.  
  89. #main program
  90.  
  91. api.add_resource(MyApp, '/')
  92.  
  93. if __name__ == '__main__':
  94. app.run(debug=True)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement