十博最佳体育平台「诚|信」

  • <acronym id="khmkt"><label id="khmkt"></label></acronym>

      <table id="khmkt"></table>
        Chinaunix首页 | 论坛 | 博客
        • 博客访问: 6055523
        • 博文数量: 492
        • 博客积分: 12019
        • 博客等级: 上将
        • 技术积分: 6705
        • 用 户 组: 普通用户
        • 注册时间: 2005-08-01 16:46
        文章分类

        全部博文(492)

        文章存档

        2020年(49)

        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/
        阅读(2230) | 评论(0) | 转发(0) |
        给主人留下些什么吧!~~
        十博最佳体育平台