Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6137650
  • 博文数量: 498
  • 博客积分: 12019
  • 博客等级: 上将
  • 技术积分: 6740
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-01 16:46
文章分类

全部博文(498)

文章存档

2020年(55)

2019年(4)

2018年(10)

2017年(5)

2016年(2)

2015年(4)

2014年(4)

2013年(16)

2012年(47)

2011年(65)

2010年(46)

2009年(34)

2008年(52)

2007年(52)

2006年(80)

2005年(22)

分类: Python/Ruby

2020-11-11 11:09:18

背景
在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/
阅读(2745) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~