Python SQLAlchemy中的痕迹插入

Python SQLAlchemy中的痕迹插入,python,sqlalchemy,flask-sqlalchemy,Python,Sqlalchemy,Flask Sqlalchemy,我正在使用flask SQLAlchemy在MySQL数据库中写入条目。这些条目有一个特定的id字段,由MySQL自动填充。我想追踪 让我们看看我的真正意思。我想先写一段话,告诉大家我收到了对API的查询。我什么都写,但没有回复,因为我没有。然后,获得响应后,我希望获得插入的行并写入响应文件: 型号: class QueriesDB(db.Model): __tablename__ = 'queries' id_query = db.Column(INTEGER(unsign

我正在使用flask SQLAlchemy在MySQL数据库中写入条目。这些条目有一个特定的id字段,由MySQL自动填充。我想追踪

让我们看看我的真正意思。我想先写一段话,告诉大家我收到了对API的查询。我什么都写,但没有回复,因为我没有。然后,获得响应后,我希望获得插入的行并写入响应文件:

型号:

class QueriesDB(db.Model):

    __tablename__ = 'queries'

    id_query = db.Column(INTEGER(unsigned=True), primary_key=True, nullable=False, autoincrement=True)
    id_user = db.Column(INTEGER(unsigned=True), db.ForeignKey(UsersDB.id_user), nullable=True)
    datetime = db.Column(db.TIMESTAMP, nullable=False, default=datetime.utcnow)
    IP = db.Column(db.String(39), nullable=False)
    header = db.Column(LONGTEXT, nullable=False)
    response = db.Column(LONGTEXT, nullable=True)
    answered = db.Column(db.Boolean, nullable=False)
如何插入:

valid_query = QueriesDB(id_user=self.id_user, IP=self.request.remote_addr,
                        header=str(dict(self.request.headers)), answered=False)
db.session.add(valid_query)
db.session.commit()
现在,我想通过使用id_查询来获取特定的行,并写入responsed=True以及响应主体。但我不确定最好的方法是什么,因为我实际上不知道id\u查询

在执行commit()时,是否有一种简单的方法来保持id_查询


当然,这可能是一个设计问题。您的想法是什么?

您应该使用
db.session.flush()

valid_query = QueriesDB(id_user=self.id_user, IP=self.request.remote_addr,
                        header=str(dict(self.request.headers)), answered=False)
db.session.add(valid_query)

db.session.flush()
# you can get autoincremented number from DB 
print(valid_query.id_query)

db.session.commit()