# coding: utf-8
from sqlalchemy import Column, Integer, String, create_engine, update
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
import cx_Oracle
Base = declarative_base()
class Post(Base):
__tablename__ = 'CUSTOMER'
name = Column('NAME', String, primary_key=True)
gender = Column('GENDER', String)
# class Post(Base):
# __tablename__ = 'CUSTOMER'
#
# name= Column('NAME', String, primary_key=True)
# gender = Column('NAME', String)
# gender = Column('GENDER', String)
ip = '127.0.0.1'
port = '1521'
uname = 'hr' # 用户名
pwd = 'Foxconn123' # 密码
tnsname = 'xe' # 实例名
dsnStr = cx_Oracle.makedsn(ip, port, service_name=tnsname)
connect_str = "oracle://%s:%s@%s" %(uname, pwd, dsnStr)
engine = create_engine(connect_str, encoding='utf-8')
Database= sessionmaker(bind=engine)
new_rec = Post(name='LILY')
if __name__ == '__main__':
db = Database()
query = db.query(Post)
print(query.count())
try:
db.delete(db.query(Post).filter(name='LILY').first())
db.commit()
except:
pass
a = db.query(Post).filter_by(name='JIM').first()
#用这种方法解决update
a.gender = 't2002'
print(a.gender)
db.commit()
参考
重点看最下面一段
https://www.crifan.com/sqlalchemy_update_existing_column_info/