sqlalchemy 对数据库的修改

engine = create_engine("mysql+pymysql://root:111@localhost/xxx", encoding='utf-8', echo=True)
Session_class = sessionmaker(bind=engine)
Session = Session_class()

修改一条记录
user = Session.query(User).filter_by(id=1).first()
user.name = "aa_changed"

插入一条记录
user2 = User(name='bb', password='111')
Session.add(user2)

实验一:
不提交,也不查询。我到数据库查看没有变化

实验二:
不提交,但我做了一次查询操作。没想到写入到数据库了!
Session.query(User).filter(User.name.like('zx*')).first()
Session.query(User).filter(User.name == 'zhl').first()
就是这里,我想请教一下:为什么"只查询不提交"也能修改数据库???????

阅读 3.9k
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题