首先,我们来创建一个配置文件,其中包含数据库中表的映射关系,文件名为: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()