flask 模型类中relationship的使用及其参数backref的说明,

模型类

class Author(db.Model):
    __tablename__ = 't_author'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(64))

    # bk是关系的名字,Author的实例对象可以通过bk来查询其对应的有那些图书
    # Book是该关系对应的模型类类名,名字是类名,不能随意起
    # backref='author_i'是回调的引用,author_i是自定义的名字,
    #     Book的实例对习惯可以通过author_i来查询其对应的作者
    bk = relationship('Book', backref='author_id')

class Book(db.Model):
    __tablename__ = 't_book'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(64))

    # Book的外键,db.ForeignKey('t_author.id')里面必须是('引用的表表名.引用表的主键')
    author_id = db.Column(db.Integer, db.ForeignKey('t_author.id'))

插入测试数据

# 插入数据
    au1 = Author(name='我吃西红柿')
    au2 = Author(name='唐家三少')
    db.session.add_all([au1, au2])

    bk1 = Book(name='吞噬星空', author_id=au1.id)
    bk2 = Book(name='盘龙',author_id=au1.id)
    bk3 = Book(name='龙王传说',author_id=au2.id)
    db.session.add_all([bk1, bk2, bk3)

    db.session.commit()

查询示例

# 示例
    #查询 我吃西红柿 写了哪些书,查询的结果是书
    au1.bk
    #查询盘龙是谁写的,查询的结果是作者
    bk1.author_id
posted @ 2018-05-26 19:15  fanlei5458  阅读(1919)  评论(0编辑  收藏  举报