当前位置: 代码迷 >> SQL >> python学习课程(八)sqlalchemy的classic映射
  详细解决方案

python学习课程(八)sqlalchemy的classic映射

热度:83   发布时间:2016-05-05 12:04:30.0
python学习教程(八)sqlalchemy的classic映射

首先,我们来创建一个配置文件,其中包含数据库中表的映射关系,文件名为:dbsetting.py
from sqlalchemy.orm import mapperfrom sqlalchemy import Table, MetaData, Column, Integer, String, DateTimefrom datetime import datetimefrom sqlalchemy.engine import create_engine'''the connection to the database'''engine = create_engine("mysql://root:[email protected]/test",isolation_level="READ UNCOMMITTED") '''the construct of the database table'''metadata = MetaData()people = Table( #people                'people', metadata,                Column('id', Integer, primary_key=True),                Column('name', String(16), unique=True, nullable=False),                Column('gender', String(255), unique=True, nullable=True),                Column('created', DateTime, default=datetime.now)                )student = Table( #student                'student', metadata,                Column('id', Integer, primary_key=True),                Column('name', String(16), unique=True, nullable=False),                Column('gender', String(255), unique=True, nullable=True),                Column('created', DateTime, default=datetime.now)                )teacher = Table( #teacher                'teacher', metadata,                Column('id', Integer, primary_key=True),                Column('name', String(16), unique=True, nullable=False),                Column('gender', String(255), unique=True, nullable=True),                Column('created', DateTime, default=datetime.now)                )'''create database class'''class People(object):passclass Student(object):passclass Teacher(object):pass'''classic'''mapper(People,people)mapper(Student,student)mapper(Teacher,teacher)'''create tables'''metadata.create_all(engine)


然后,我们可以写一个文件,测试一下,文件代码如下:

from dbproject.dbsetting import People,Teacher,enginefrom sqlalchemy.orm import sessionmakerpeople = People()teahcer = Teacher()people.name='renlei'people.id=1teahcer.name='laoshi'teahcer.id=1Session = sessionmaker()Session.configure(bind=engine)session = Session()session.add(people)session.add(teahcer)session.flush()session.commit()