2012年5月29日 星期二

Create a object from relation table by using SQLAlchemy

from sqlalchemy import *
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

## Create base class
Base = declarative_base()

## Create session class
Session = sessionmaker()

## Define User class
class User(Base):
    __tablename__ = "user"

    id = Column(Integer, Sequence('user_id_seq'), nullable = False, primary_key = True)
    username = Column(VARCHAR, nullable = False, primary_key = True)
    password = Column(VARCHAR, nullable = False)

    def __init__(self, username, password):
        self.username = username
        self.password = password

## Config connection engine
engine = create_engine("postgresql://username:password@server:port/database")

## Set user table use engine connection
User.metadata.bind = engine

## Create table, drop if exist
User.__table__.drop()
User.__table__.create()

## Create operate object and set connection
session = Session()
session.configure(bind = engine)

## Create user into database
session.add(User("kuntelin", "password"))
session.commit()

## Get users from database
print session.query(User).all()