Python SQLAlchemy中的痕迹插入
我正在使用flask SQLAlchemy在MySQL数据库中写入条目。这些条目有一个特定的id字段,由MySQL自动填充。我想追踪 让我们看看我的真正意思。我想先写一段话,告诉大家我收到了对API的查询。我什么都写,但没有回复,因为我没有。然后,获得响应后,我希望获得插入的行并写入响应文件: 型号: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
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()