第15天上课例子,sqllchemy运用

#!/usr/bin/python
#
-*- encoding:utf-8 -*-
from sqlalchemy import *
from sqlalchemy.orm import *
engine=create_engine("sqlite:///./test.db")
metadata=MetaData()
party=Table('party',metadata,
Column('id',Integer,primary_key=True),
Column('name',String(32),nullable=False),
Column('type',String(32),nullable=False),
)
person=Table('person',metadata,
Column('id',Integer,ForeignKey('party.id'),primary_key=True),
Column('sex',String(16),nullable=False),
)
org=Table('org',metadata,
Column('id',Integer,ForeignKey('party.id'),primary_key=True),
Column('capital',Integer,nullable=False),
)

usr=Table('usr',metadata,
Column('id',Integer,primary_key=True),
)

metadata.drop_all(engine)
metadata.create_all(engine)

class Party(object):
pass

class Org(Party):
pass

mapper(Party,party,polymorphic_on=party.c.type,
polymorphic_identity="party")
mapper(Org,org,inherits=Party,
polymorphic_identity="org")

p=Party()
o=Org()
p.name='test'
o.name='test org'
o.capital=200

Session=sessionmaker(bind=engine)
s=Session()

s.add(p)
s.add(o)
s.commit()

print dir(s)
c=0
for r in s.query(Party).all():
if c==0:
s.delete(r)
c=1
print r.id,r.name,dir(r)
r.name=r.name+' new'
s.commit()
原文地址:https://www.cnblogs.com/wuxi/p/2286245.html