Guest User

Untitled

a guest
Aug 18th, 2018
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.90 KB | None | 0 0
  1. # Set the following env variables if env variable "DATABASE_TYPE" is "pg" :
  2. # DB_USERNAME : the username for the postgres database
  3. # DB_PASSWORD : the password for the postgres database user
  4. # DB_NAME : the name of the existing postgres database
  5.  
  6. from flask import Flask
  7. from flask_sqlalchemy import SQLAlchemy
  8. from sqlathanor import FlaskBaseModel, initialize_flask_sqlathanor
  9. import os
  10.  
  11. def generate_event_model(db):
  12. class Events(db.Model):
  13. event_id = db.Column(db.Integer, primary_key=True, supports_json = True)
  14. event_name = db.Column(db.String(80), unique=True, nullable=False, supports_json = True)
  15. event_settings_values = db.relationship("EventSettingsAssociation",lazy="joined", supports_json = True)
  16. def __repr__(self):
  17. return '<Event %r>' % self.event_name
  18. return Events
  19.  
  20. def generate_event_settings_association_model(db):
  21. class EventSettingsAssociation(db.Model):
  22. event_id = db.Column(db.Integer, db.ForeignKey('events.event_id'), primary_key=True, supports_json = True)
  23. extra_data = db.Column(db.String(50), supports_json = True)
  24. return EventSettingsAssociation
  25.  
  26. if os.environ.get('DB_TYPE',None) == "pg":
  27. db_url="postgresql://%s:%s@localhost/%s" % (os.environ['DB_USERNAME'],os.environ['DB_PASSWORD'],os.environ['DB_NAME'])
  28. else:
  29. db_url="sqlite:////tmp/test.db"
  30.  
  31. app = Flask(__name__, instance_relative_config=True)
  32. app.config['SQLALCHEMY_DATABASE_URI'] = db_url
  33. db_handle = SQLAlchemy(app,model_class = FlaskBaseModel)
  34. db_handle = initialize_flask_sqlathanor(db_handle)
  35. events = generate_event_model(db_handle)
  36. event_settings_association = generate_event_settings_association_model(db_handle)
  37. json_passes = '{"event_name":"testing_event","event_settings_values":[]}'
  38. print(events.new_from_json(json_passes))
  39. json_fails = '{"event_name":"testing_event","event_settings_values":[{"extra_data":"test_data"}]}'
  40. print(events.new_from_json(json_fails))
Add Comment
Please, Sign In to add comment