背景
在flask项目中,引入sqlalchemy进行数据库交互。
数据库模型定义如下:
class (db.Model):
__tablename__ = 'qa_records'
id = db.Column(db.Integer, primary_key=True)
question = db.Column(db.Text)
answer = db.Column(db.String(1000))
feedback = db.Column(db.String(1000))
timestamp = db.Column(db.DateTime(), default=datetime.now)
description = db.Column(db.Text)
这里的id是自增的,无需自己定义。
创建对象:
qa = QARecords(question=question)
那么怎么获取这个对象的ID呢?
解决办法
在模型数据库这种方式中,直接定义数据库模型对象后,并不会生成具体id的
>> qa = QARecords(question='something'
>> print(qa.id) None
由上可见,此时的对象的id为空。
id是由数据库自增生成的,所以需要在数据库中提交变更之后,才会生成具体的对象。
代码修改如下:
qa = QARecords(question='something')
db.session.add(qa) >> db.session.commit()
print(qa.id) 1
通过提交一次数据库,通过sqlalchemy与数据库进行了一次交互,此时该对象才完整了。
转自:https://www.dazhuanlan.com/2019/12/16/5df6e43d6e4e0/
阅读(2230) | 评论(0) | 转发(0) |