PythonDatabases
From TkkrLab
This is a part of PythonMaterial.
""" Example of sqlalchemy with sqlite """ from sqlalchemy import create_engine, Column, Integer, String, Enum from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker engine = create_engine('sqlite:///:memory:', echo=True) Base = declarative_base() class User(Base): """ Table connected to a class """ __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String(255)) fullname = Column(String(255)) password = Column(String(50)) state = Column(Enum('Tentative', 'Active', 'Inactive', 'Removed')) def __init__(self, name, fullname, password): self.name = name self.fullname = fullname self.password = password self.state = 'Tentative' def __repr__(self): return "User(%s, %s)" % (self.name, self.fullname) Base.metadata.create_all(engine) Session = sessionmaker(bind=engine) session = Session() u = User("me", "myself", "w00t") v = User("jane", "Janet", "puppy") session.add(u) session.add(v) session.flush() # needed to allow u.id and v.id to be filled # session.commit() is heavier i1 = u.id i2 = v.id print "New record ids", i1, i2 n = u.name print "New record ids", n v.password = "mypuppy" session.merge(v) # session.close() is not needed # sqlautocode.py # -o model.py # -u postgres://postgres:user@password/MyDatabase # -s myschema # -t Person*,Download