2011/01/04

Python SQLAlchemy Sample

簡單記錄一下SQLAlchemy的用法

db.py

#!C:\Python25\python.exe
#coding: utf-8

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

Base = declarative_base()

# Job
class Job(Base):
__tablename__ = 'Job'

id = Column(Integer, Sequence('id_seq'), primary_key=True)
jod_dd = Column(Date)
job_02 = Column(String(50))
job_03 = Column(String(50))
job_04 = Column(Text)
job_05 = Column(Integer)
job_06 = Column(String(2))
job_07 = Column(Text)
job_08 = Column(Date)
job_09 = Column(Date)
job_10 = Column(Date)
job_11 = Column(Text)

def __init__(self, User, Dept):
self.job_02 = User
self.job_03 = Dept

def __repr__(self):
return "Job<'%s', '%s'>" % (self.job_02, self.job_03)

# Comment
class Comment(Base):
__tablename__ = "Comment"

id = Column(Integer, Sequence('id_seq'), primary_key=True)
comment_f = Column(Integer)
comment_01 = Column(Text)
comment_dd = Column(Date)
comment_02 = Column(String(100))

def __init__(self):
pass

def __repr__(self):
pass

# see http://www.sqlalchemy.org/docs/07/dialects/sqlite.html
from sqlite3 import dbapi2 as sqlite
engine = create_engine('sqlite:///twcsms.db', module=sqlite, echo=True)
# created in memory
# engine = create_engine('sqlite:///:memory:', echo=True)
Base.metadata.create_all(engine)

test_db.py


#!C:\Python25\python.exe
#coding: utf-8

import unittest
import db

from sqlalchemy.orm import relation, sessionmaker

class TestDb(unittest.TestCase):

def test_InsertJob(self):
# create session
Session = sessionmaker(bind=db.engine)
created_record = db.Job("Sunset", "Orz")
session = Session()
session.add(created_record)
session.commit()

if __name__ == "__main__":
unittest.main()

執行結果


image

反應:

0 意見:

張貼意見