Advertisement
Guest User

Untitled

a guest
Mar 29th, 2015
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.51 KB | None | 0 0
  1. (plasma) $ python checkup_web.py shell
  2. > from app import db
  3. > db.create_all()
  4.  
  5. root
  6. ---app
  7. ------__init__.py
  8. ------models.py
  9. ------[various blueprints]
  10. ---checkup_web.py
  11. ---config.py
  12.  
  13. #!/usr/bin/env python
  14. import os
  15. from app import create_app, db
  16. from flask.ext.script import Manager
  17.  
  18. app = create_app(os.getenv('FLASK_CONFIG') or 'default')
  19. manager = Manager(app)
  20.  
  21.  
  22. if __name__ == '__main__':
  23. manager.run()
  24.  
  25. import os
  26.  
  27. class Config:
  28. SECRET_KEY = os.environ.get('SECRET_KEY')
  29.  
  30.  
  31. class DevelopmentConfig(Config):
  32. DEBUG = True
  33. SECRET_KEY = os.environ.get('SECRET_KEY') or 't0p s3cr3t'
  34. SQLALCHEMY_DATABASE_URI = os.environ.get('DEV_DATABASE_URL') or
  35. 'mysql+pymysql://root:root_password@localhost/checkup_db'
  36.  
  37. class TestingConfig(Config):
  38. TESTING = True
  39. SECRET_KEY = 'secret'
  40.  
  41.  
  42. class ProductionConfig(Config):
  43. pass
  44.  
  45.  
  46. config = {
  47. 'development': DevelopmentConfig,
  48. 'testing': TestingConfig,
  49. 'production': ProductionConfig,
  50. 'default': DevelopmentConfig
  51. }
  52.  
  53. from flask import Flask
  54. from flask.ext.sqlalchemy import SQLAlchemy
  55. from config import config
  56.  
  57. db = SQLAlchemy()
  58.  
  59. def create_app(config_name):
  60. app = Flask(__name__)
  61. app.config.from_object(config[config_name])
  62. db.init_app(app)
  63.  
  64. from .families import families as families_blueprint
  65. app.register_blueprint(families_blueprint)
  66.  
  67. from .patients import patients as patients_blueprint
  68. app.register_blueprint(patients_blueprint)
  69.  
  70. from .doctors import doctors as doctors_blueprint
  71. app.register_blueprint(doctors_blueprint)
  72.  
  73. from .conversations import conversations as conversations_blueprint
  74. app.register_blueprint(conversations_blueprint)
  75.  
  76. from .appointments import appointments as appointments_blueprint
  77. app.register_blueprint(appointments_blueprint)
  78.  
  79. return app
  80.  
  81. from datetime import datetime
  82. from . import db
  83.  
  84. family_2_doc = db.Table('family_2_doc',
  85. db.Column('family_id', db.Integer, db.ForeignKey('families.id')),
  86. db.Column('doctor_id', db.Integer, db.ForeignKey('users.id'))
  87. )
  88.  
  89. patient_2_doc = db.Table('patient_2_doc',
  90. db.Column('patient_id', db.Integer, db.ForeignKey('users.id')),
  91. db.Column('doctor_id', db.Integer, db.ForeignKey('users.id'))
  92. )
  93.  
  94. class Family(db.Model):
  95. __tablename__ = 'families'
  96. id = db.Column(db.Integer, primary_key=True)
  97. street_address = db.Column(db.String(64))
  98. city = db.Column(db.String(64))
  99. zipcode = db.Column(db.String(64))
  100. country = db.Column(db.String(64))
  101. phone_number = db.Column(db.String(64))
  102. stripe_id = db.Column(db.String(64))
  103. billing_valid = db.Column(db.Boolean)
  104. num_relationships = db.Column(db.Integer)
  105. doctors = db.relationship('Doctor', secondary=family_2_doc,
  106. backref=db.backref('families', lazy='dynamic'), lazy='dynamic')
  107. patients = db.relationship('Patient', backref='family', lazy='dynamic')
  108.  
  109. class Clinic(db.Model):
  110. __tablename__ = 'clinics'
  111. id = db.Column(db.Integer, primary_key=True)
  112. street_address = db.Column(db.String(64))
  113. city = db.Column(db.String(64))
  114. zipcode = db.Column(db.String(64))
  115. country = db.Column(db.String(64))
  116. phone_number = db.Column(db.String(64))
  117. doctors = db.relationship('Doctor', backref='clinic', lazy='dynamic')
  118. admins = db.relationship('Admin', backref='clinic', lazy='dynamic')
  119.  
  120. class User(db.Model):
  121. __tablename__ = 'users'
  122. id = db.Column(db.Integer, primary_key=True)
  123. email = db.Column(db.String(64), unique=True, index=True)
  124. first_name = db.Column(db.String(64))
  125. last_name = db.Column(db.String(64))
  126. password_hash = db.Column(db.String(128))
  127. date_joined = db.Column(db.DateTime())
  128. discriminator = Column('type', String(50))
  129. __mapper_args__ = {'polymorphic_on': discriminator}
  130.  
  131. class Patient(User):
  132. __mapper_args__ = {'polymorphic_identity': 'patient'}
  133. dob = db.Column(db.String(64))
  134. relationship_to_creator = db.Column(db.Boolean) # is equal to 'creator' if patient is creator
  135. is_primary = db.Column(db.Boolean)
  136. street_address = db.Column(db.String(64))
  137. city = db.Column(db.String(64))
  138. zipcode = db.Column(db.String(64))
  139. country = db.Column(db.String(64))
  140. phone_number = db.Column(db.String(64))
  141. profile_pic = db.Column(db.String(64))
  142. doctors = db.relationship('Doctor', secondary=patient_2_doc,
  143. backref=db.backref('patients', lazy='dynamic'), lazy='dynamic')
  144. appointments = db.relationship('Appointment', backref='patient', lazy='dynamic')
  145.  
  146. class Doctor(User):
  147. __mapper_args__ = {'polymorphic_identity': 'doctor'}
  148. practice_street_address = db.Column(db.String(64))
  149. practice_city = db.Column(db.String(64))
  150. practice_zipcode = db.Column(db.String(64))
  151. practice_country = db.Column(db.String(64))
  152. practice_phone_number = db.Column(db.String(64))
  153. personal_street_address = db.Column(db.String(64))
  154. personal_city = db.Column(db.String(64))
  155. personal_zipcode = db.Column(db.String(64))
  156. personal_country = db.Column(db.String(64))
  157. personal_phone_number = db.Column(db.String(64))
  158. schedule_start = db.Column(db.DateTime())
  159. schedule_end = db.Column(db.DateTime())
  160. appointments = db.relationship('Appointment', backref='doctor', lazy='dynamic')
  161.  
  162. class Admin(User):
  163. __mapper_args__ = {'polymorphic_identity': 'admin'}
  164.  
  165. class Appointment(db.Model):
  166. __tablename__ = 'appointments'
  167. is_subscriber = db.Column(db.Boolean)
  168. start = db.Column(db.DateTime())
  169. end = db.Column(db.DateTime())
  170. notes = db.Column(db.Text())
  171.  
  172. class Message(db.Model):
  173. __tablename__ = 'messages'
  174. body = db.Column(db.Text())
  175. timestamp = db.Column(db.DateTime())
  176. user1_id = db.Column(db.Integer) # smaller id
  177. user2_id = db.Column(db.Integer) # larger id
  178. user_sender_id = db.Column(db.Integer)
  179. message_number = db.Column(db.Integer)
  180.  
  181. class Conversation(db.Model):
  182. __tablename__ = "conversations"
  183. user1_id = db.Column(db.Integer) # smaller id
  184. user2_id = db.Column(db.Integer) # larger id
  185. total_messages = db.Column(db.Integer)
  186.  
  187. $ mysql -u root -p
  188. Password: *********
  189.  
  190. mysql> show databases;
  191. +--------------------+
  192. | Database |
  193. +--------------------+
  194. | information_schema |
  195. | channels |
  196. | checkup_db |
  197. | comments |
  198. | media |
  199. | mysql |
  200. | notifications |
  201. | performance_schema |
  202. | reactions |
  203. | sessions |
  204. | shares |
  205. | sparks |
  206. | test |
  207. | users |
  208. +--------------------+
  209. 14 rows in set (0.01 sec)
  210.  
  211. mysql> use checkup_db
  212. Database changed
  213.  
  214. mysql> show tables;
  215. Empty set (0.00 sec)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement