【问题标题】:Autocommit in Flask-SQLAlchemyFlask-SQLAlchemy 中的自动提交
【发布时间】:2014-10-01 14:25:50
【问题描述】:

如何设置初始化我的 Flask 应用程序以将 Flask-SQLAlchemy 设置为自动提交模式,除非我明确地session.begin() 否则不使用事务?

会话“begins a database transaction as soon as it starts communicating”。这是否会影响 Postgres 比 MySQL 更难


Instagram,

自动提交模式;在这种模式下,Psycopg2 不会发出 BEGIN/COMMIT 任何查询;相反,每个查询都在自己的单语句中运行 交易。这对于只读查询特别有用 不需要事务语义。就这么简单:

connection.autocommit = True

这降低了我们的应用服务器和数据库之间的干扰 显着降低了系统 CPU 以及数据库盒

【问题讨论】:

    标签: postgresql flask sqlalchemy


    【解决方案1】:

    我认为你可以在 Flask-SQLAlchemy 中设置 autocommit 这样做:

    from flask.ext.sqlalchemy import SQLAlchemy
    db = SQLAlchemy(session_options={'autocommit': True})
    

    编辑:'flask.ext.'表单现已弃用(参见here

    from flask_sqlalchemy import SQLAlchemy
    db = SQLAlchemy(session_options={'autocommit': True})
    

    【讨论】:

    【解决方案2】:

    由于您使用的是 Flask-SQLAlchemy,默认情况下它具有autocommit = False。看到这个code here

    它确实说如果你想默认打开自动提交为 True,你将不得不覆盖 SQLAlchemy.create_session 函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-30
      • 1970-01-01
      • 2013-04-30
      • 2019-03-14
      • 2021-12-26
      相关资源
      最近更新 更多