flask-sqlalchemy relationship

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

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'))

方法1sql

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()
相關文章
相關標籤/搜索