Guest User

Untitled

a guest
Sep 30th, 2018
301
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.18 KB | None | 0 0
  1. DATABASE_DETAILS = {
  2. 'drivername': 'postgres',
  3. 'host' : 'localhost',
  4. 'port' : '5432',
  5. 'username' : 'postgres',
  6. 'password' : '',
  7. 'database' : 'test'
  8. }
  9.  
  10. #For Modeling
  11. from sqlalchemy.orm import relationship
  12. from sqlalchemy.ext.declarative import declarative_base
  13. from sqlalchemy.dialects.postgresql.json import JSONB
  14. from sqlalchemy import Column, Integer, String, Text, ForeignKey
  15.  
  16. #For Session Creation
  17. from sqlalchemy.engine.url import URL
  18. from sqlalchemy.orm import sessionmaker, relationship
  19. from sqlalchemy import create_engine
  20.  
  21. #Other
  22. from hashlib import sha256
  23. from json import dumps, load
  24.  
  25. #connect to db
  26. engine = create_engine(URL(**DATABASE_DETAILS), echo=True)
  27.  
  28. #create our mapping
  29. Base = declarative_base()
  30.  
  31. class User(Base):
  32. __tablename__ = 'users'
  33.  
  34. id = Column(Integer, primary_key=True)
  35. email = Column(Text, nullable=False, unique=True)
  36. name = Column(Text, nullable=False)
  37. password = Column(Text, nullable=False)
  38. #info = Column(MutableDict.as_mutable(JSONB))
  39.  
  40. entries = relationship('Entry', backref='user')
  41.  
  42. def __init__(self, email, name, password):
  43. self.email = sha256(email.encode()).hexdigest()
  44. self.name = name
  45. self.password = password #later -> bcrypt.encrypt(password)
  46.  
  47. def __repr__(self):
  48. return "<User(id='%s', email='%s', name='%s')>" % (
  49. self.id, self.email, self.name)
  50.  
  51. class Entry(Base):
  52. __tablename__ = 'entries'
  53.  
  54. id = Column(Integer, primary_key=True)
  55. espn_gameID = Column(Text)
  56. ncaa_gameID = Column(Text)
  57. user_id = Column(Integer, ForeignKey('users.id'))
  58.  
  59. #create tables
  60. Base.metadata.create_all(engine)
  61.  
  62. #start session
  63. Session = sessionmaker(bind=engine)
  64. session = Session()
  65.  
  66. #query users
  67. queried = session.query(User).filter_by(id=1).first()
  68.  
  69. if not(queried):
  70.  
  71. new_user = User(email="gaben@valvesoftware.com", name='Gabe', password='hunter2')
  72. session.add(new_user)
  73. if new_user in session.new:
  74. session.commit()
  75. else:
  76. user = queried
  77. print(user.entries)
  78. user.entries.append(Entry(espn_gameID='BLAH'))
  79. # print(user.entries[0].user.email)
  80. if user in session.dirty:
  81. session.commit()
Add Comment
Please, Sign In to add comment