首页 > 解决方案 > SQLAlchemy 不会自动提交

问题描述

我正在尝试使我的查询自动提交。我的__init__.py样子是这样的:

# third-party imports
from flask import Flask
from flask_sqlalchemy import SQLAlchemy

# local imports
from config import app_config

# db variable initialization
session_options = {
    'autocommit': True
}
db = SQLAlchemy(session_options=session_options)


def create_app(config_name):
    app = Flask(__name__, instance_relative_config=True)
    app.config.from_object(app_config[config_name])
    app.config.from_pyfile('config.py')
    db.init_app(app)

    from webapp import models

    with app.app_context():
        from . import routes
        db.create_all()

    return app

然后在 Flask 路线中,我有这个:

new_request = Requests(
    worker_guid=str(job_guid),
    status=1,
    url=content['url'],
    proxy=content['proxy'],
    date_submitted=datetime.datetime.utcnow()
)

db.session.add(new_request)

但是,该记录永远不会插入 MySQL 数据库。如果我在db.session.commit()下方添加.add,则记录将提交到数据库。

我认为设置autocommitTrue可以避免我.commit()在每次查询后都必须写?

谢谢

标签: python-3.xflask-sqlalchemy

解决方案


推荐阅读