我正在用python flask sqlalchemy和MySQL DB(https://flask-sqlalchemy.palletsprojects.com/en/2.x/)编写一个应用程序,我想知道在GET调用之后是否必须执行“DB.session.commit()或DB.session.rollback()”,这只查询数据库
例如:
@app.route('/getOrders')
def getOrders():
orders = Order.query.all()
# Do I have to put here "db.session.commit()" or "db.session.rollback" ?
return { 'orders': [order.serialize() for order in orders] }
orders = Order.query.all()
是一个SELECT
查询,可以扩展以包括其他筛选器(WHERE
等)。它不改变数据库,只是从中读取值。您不需要因为这个原因而在读取时commit
,除了“我刚刚读取了这个数据”之外,您还会存储什么呢?数据库以其他方式关注这一点,即访问权限和日志鉴于上述情况,
rollback
没有任何意义,因为实际回滚没有任何更改除其他外,炼金术在治疗过程中发挥了一些魔力。这大致相当于:
后跟一个方法close sessions:
底线是:不,您不必担心这里的
commit
或rollback
,即使在SQL中,会话管理(完全独立)由Flask SQLALchemy处理相关问题 更多 >
编程相关推荐