1. 程式人生 > 實用技巧 >sqlalchemy 對已存在的資料庫表格進行操作

sqlalchemy 對已存在的資料庫表格進行操作

import MySQLdb
import sqlalchemy
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String
from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine, Table, MetaData
conn=MySQLdb.connect(host="localhost",user="root",passwd="123456")
cur=conn.cursor()
db="test"
if cur.execute('show databases like %s',(db,)):
engine = create_engine("mysql+mysqldb://root:123456@localhost/%s?charset=utf8"%(db),encoding='utf-8')
else:
print("there is no database of %s"%(db))
exit()
Base = declarative_base() #生成orm基類
Session_class = sessionmaker(bind=engine) #建立與資料庫的會話session class ,注意,這裡返回給session的是個class,不是例項
Session = Session_class() #生成session例項

metadata = MetaData()
teacher_1= Table('teacher_1', metadata, autoload=True, autoload_with=engine)
class_1= Table('class', metadata, autoload=True, autoload_with=engine)
course= Table('course', metadata, autoload=True, autoload_with=engine)

tables=engine.table_names()#顯示所有的表
print(tables)
Session.execute(teacher_1.insert(),{"tname":"angel"})#增加新資料
Session.execute(teacher_1.delete().where(teacher_1.c.tid==3))#刪除資料
Session.execute(teacher_1.update().where(teacher_1.c.tid==2).values(tname='wupeiqi'))#修改資料
teahcer_obj1=Session.execute(teacher_1.select().where(teacher_1.c.tid==1))#查詢資料
teahcer_obj = Session.query(teacher_1).filter_by(tid=2).all()#查詢資料
print(teahcer_obj)
print(teahcer_obj1.fetchall())
Session.commit()