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).where(teacher_1.c.tid<10))#查询数据
teahcer_obj = Session.query(teacher_1).filter_by(tid=2).all()#查询数据
print(teahcer_obj)
print(teahcer_obj1.fetchall())
Session.commit()
posted @ 2020-07-21 16:12  原竹  阅读(1420)  评论(0编辑  收藏  举报