一、首先要明白flush和commit区别:
> flush: 写数据库,但不提交,也就是事务未结束
> commit: sqlalchemy会自动创建隐私的事务,先调用flush写数据库,然后提交,结束事务,并开始新的事务
二、对db.session.flush进行探索(现有两张表,一主一外)
class OrderInfo(db.Model):
"""订单表"""
__tablename__ = "order_info"
order_id = db.Column(db.String(128), primary_key=True) # 订单id
total_count = db.Column(db.Integer, default=1) # 商品数量
total_price = db.Column(db.Numeric(10, 2)) # 商品总价
transit_price = db.Column(db.Numeric(10, 2)) # 订单运费
class OrderGoods(db.Model):
"""订单商品表"""
__tablename__ = "order_goods"
id = db.Column(db.Integer, primary_key=True)
order = db.Column(db.String(128), db.ForeignKey('order_info.order_id')) # 订单ID
count = db.Column(db.Integer, default=1) # 商品数目