flask-sqlalchemy relationship

http://www.ergo.io/blog/sqlalchemy-relationships-from-beginner-to-advanced

class Cabinet(db.Model):
    __tablename__ = 'cabinet'
    uuid = db.Column(db.String(40), primary_key=True, nullable=True, default=str(uuid.uuid4()))
    id = db.Column(db.String(20))
    description = db.Column(db.Text)
    racks = db.relationship('Rack', backref='cabinet')

class Rack(db.Model):
    __tablename__ = 'rack'
    uuid = db.Column(db.String(40), primary_key=True, nullable=True, default=str(uuid.uuid4()))
    id = db.Column(db.String(20))
    cabinet_id = db.Column(db.String(40), db.ForeignKey('cabinet.uuid'))

方法1

racks = [ Rack(uuid=uuid.uuid4(), id=i for i in xrange(1,43) ]
cabinet = Cabinet(id='bj-01', description='bj-01', racks=racks)
# 前一个racks是到Rack的关联对象,后一个racks是一个Rack对象数组
db.session.add(cabinet)
db.session.commit()

方法2

cabinet = Cabinet(id='bj-01', description='bj-01')
db.session.add(cabinet)

for i in xrange(42):
   rack = Rack(uuid=str(uuid.uuid4()), id=i, cabinet=cabinet) 
   #cabinet是反向引用
   db.session.add(rack)

db.session.commit()
posted on 2017-01-16 14:15 北京涛子 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/liujitao79/p/6289447.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值