Flask-SQLalchemy 更新一行的信息

新手上路,请多包涵

如何更新行的信息?

例如,我想更改 ID 为 5 的行的名称列。

原文由 pocorschi 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 541
2 个回答

使用 Flask-SQLAlchemy 文档 中显示的教程 检索对象。拥有要更改的实体后,请更改实体本身。然后, db.session.commit()

例如:

 admin = User.query.filter_by(username='admin').first()
admin.email = 'my_new_email@example.com'
db.session.commit()

user = User.query.get(5)
user.name = 'New Name'
db.session.commit()

Flask-SQLAlchemy 基于 SQLAlchemy,所以一定要查看 SQLAlchemy 文档

原文由 Mark Hildreth 发布,翻译遵循 CC BY-SA 3.0 许可协议

在 SQLAlchemy 的 BaseQuery 对象上有一个方法 update ,由 filter_by 返回。

 num_rows_updated = User.query.filter_by(username='admin').update(dict(email='my_new_email@example.com')))
db.session.commit()

当有许多对象要更新时,使用 update 优于更改实体的优势就出现了。

如果您想将 add_user 权限授予所有 admin s,

 rows_changed = User.query.filter_by(role='admin').update(dict(permission='add_user'))
db.session.commit()

请注意 filter_by 采用关键字参数(仅使用一个 = ),而 filter 采用表达式。

原文由 Devi 发布,翻译遵循 CC BY-SA 4.0 许可协议

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