python SQLAlchemy多表操作
from sqlalchemy.engine import create_engine
conn_url = 'mysql://root:mysql@127.0.0.1:3306/wangfei4?charset=utf8'
engine = create_engine(conn_url, encoding='utf-8', echo=False)
# 声明orm基类(这个基类的子类会自动和数据库进行关联)
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base(bind=engine)
# 导入列和数据类型
from sqlalchemy import Column, ForeignKey
from sqlalchemy.types import Integer, String, Date, DateTime, Float, Text
# 自定义类创建数据库表
class Clazz(Base):
__tablename__ = 't_cls'
cno = Column(Integer, primary_key=True, autoincrement=True)
cname = Column(String(length=30), unique=True)
class Student(Base):
__tablename__ = 't_student'
sno = Column(Integer, primary_key=True, autoincrement=True)
sname = Column(String(length=30), unique=True)
cno = Column(Integer, ForeignKey(Clazz.cno, ondelete='CASCADE', onupdate='CASCADE'))
def __repr__(self):
return u'<Student:%s>' % self.