如果以后万一有一个定义好了的库,可以用这种反射的方法,作常用的操作。
#coding=utf-8from datetime import datetimefrom sqlalchemy import (MetaData, Table, Column, Integer, Numeric, String, Boolean, DateTime, ForeignKey, create_engine, CheckConstraint)from sqlalchemy import (insert, select, update, delete, text, desc, cast, and_, or_, not_)from sqlalchemy import (Table, ForeignKeyConstraint)from sqlalchemy.sql import funcfrom sqlalchemy.exc import IntegrityErrormetadata = MetaData()engine = create_engine('mysql+pymysql://u:p@ip:3306/Chinook')artist = Table('Artist', metadata, autoload=True, autoload_with=engine)print artist.columns.keys()s = select([artist]).limit(10)print engine.execute(s).fetchall()album = Table('Album', metadata, autoload=True, autoload_with=engine)album.append_constraint(ForeignKeyConstraint(['ArtistId'], ['artist.ArtistId']))print album.columns.keys()print metadata.tablesprint album.foreign_keys# print str(artist.join(album))metadata.reflect(bind=engine)print metadata.tables.keys()playlist = metadata.tables['Playlist']s = select([playlist]).limit(10)print engine.execute(s).fetchall()