模型类
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