1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- from aiopg.sa import create_engine as async_engine
- from sqlalchemy import ForeignKey, CheckConstraint
- from sqlalchemy import create_engine
- from sqlalchemy import Column, Integer, String, Text, DECIMAL, Boolean, exc, event, MetaData, select, DateTime
- from sqlalchemy import desc
- from sqlalchemy import func
- from sqlalchemy.sql.expression import true, false
- from sqlalchemy.engine.url import URL
- from sqlalchemy.orm import sessionmaker, relationship, backref
- from sqlalchemy.ext.associationproxy import association_proxy
- from sqlalchemy.ext.declarative import declarative_base, as_declarative, declared_attr
- import json
- DATABASE = {
- 'drivername': 'postgres',
- 'host': '127.0.0.1',
- 'port': '5432',
- 'username': 'xmasdamin',
- 'password': 'xmasadmin',
- 'database': 'xmasdb'
- }
- Base = declarative_base()
- metadata = MetaData()
- engine = create_engine(URL(**DATABASE))
- Session = sessionmaker(bind=engine)
- session = Session()
- class Attendee(Base):
- __tablename__ = 'attendee'
- id = Column(Integer, primary_key=True)
- name = Column(String)
- guest = Column(Boolean)
- cat = Column(String)
- def serialize(self):
- return {
- 'id': self.id,
- 'name': self.name,
- 'cat': self.cat,
- 'guest': str(self.guest)
- }
- async def add_attendee(name, guest, cat):
- attendee = session.query(Attendee).filter(Attendee.name == name).first()
- if attendee is None:
- attendee = Attendee(name=name, guest=guest, cat=cat)
- else:
- attendee.name = name
- attendee.guest = guest
- attendee.cat = cat
- if attendee is not None:
- session.add(attendee)
- session.commit()
- return True
- else:
- return False
- async def fetch_attendees():
- attendees = session.query(Attendee).all()
- if attendees is not None:
- return attendees
- else:
- return False
|