• 132.(后端)订单管理Model与初始化数据——一对多关系的表模型建立与数据填充


    1.概述

    本次,我们主要是建立三张表,分别为order订单表,order_detail订单详情表,Express物流信息表。第一张表为主表,第二张主要用于关联第一张,然后记录一些购买情况,第三章主要关联第一张,记录用户订单的物流信息

    2.模型建立代码展示

    
    # 订单表
    class Order(db.Model, BaseModel):
        __tablename__ = 't_order'
        id = db.Column(db.Integer, primary_key=True)
        uid = db.Column(db.Integer, db.ForeignKey('t_user.id'))
        price = db.Column(db.Float)
        number = db.Column(db.Integer)
        pay_status = db.Column(db.Integer) # 支付状态: 0未支付,1支付
        is_send = db.Column(db.Integer) # 是否发货
        fapiao_title = db.Column(db.String(32))
        fapiao_company = db.Column(db.String(128))
        fapiao_content = db.Column(db.String(521))
        addrs =db.Column(db.String(512))
    
        # 关联订单详情表与物流信息表
        order_detail = db.relationship('OrderDetail', backref = 'order')
        express = db.relationship('Express', backref = 'order')
    
    # 订单详情表
    class OrderDetail(db.Model):
        __tablename__ = 't_order_detail'
        gid = db.Column(db.Integer, db.ForeignKey('t_goods.id'), primary_key=True)
        oid = db.Column(db.Integer, db.ForeignKey('t_order.id'), primary_key=True)
        number = db.Column(db.Integer)
        price = db.Column(db.Float)
        total_price = db.Column(db.Float)
    
    
    
    # 物流信息表
    class Express(db.Model):
        __tablename__ = 't_express'
        id = db.Column(db.Integer, primary_key=True)
        content = db.Column(db.String(64))
        update_time = db.Column(db.String(32))
        oid = db.Column(db.Integer, db.ForeignKey('t_order.id'))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    3.migrate数据模型的迁移方法

    python manager.py db init
    python manager.py db migrate
    python manager.py db upgrade
    
    • 1
    • 2
    • 3

    4.数据的插入

    insert into t_order (id,uid,price,number,pay_status,is_send,fapiao_title,fapiao_company,addrs) value (1,5,100,66,1,1,'','','');
    insert into t_order (id,uid,price,number,pay_status,is_send,fapiao_title,fapiao_company,addrs) value (2,6,400,66,1,1,'','','');
    insert into t_order (id,uid,price,number,pay_status,is_send,fapiao_title,fapiao_company,addrs) value (3,7,200,66,1,1,'','','');
    insert into t_order (id,uid,price,number,pay_status,is_send,fapiao_title,fapiao_company,addrs) value (4,8,300,66,1,1,'','','');
    
    
    insert into  t_express(oid,update_time,content) value (1,'2020-01-19 12:17:21','商品已经下单');
    insert into  t_express(oid,update_time,content) value (1,'2020-01-19 12:27:20','您的订单开始处理');
    insert into  t_express(oid,update_time,content) value (1,'2020-01-21 16:34:07','您的订单待配货');
    insert into  t_express(oid,update_time,content) value (1,'2020-01-21 16:34:07','您的包裹已出库');
    insert into  t_express(oid,update_time,content) value (1,'2020-01-21 19:00:29','包裹正在等待揽收');
    insert into  t_express(oid,update_time,content) value (1,'2020-01-22 15:30:00','顺丰速运 已收取快件');
    insert into  t_express(oid,update_time,content) value (1,'2020-01-23  5:30:00','快件在【金华婺城集收客户营业部】已装车,准备发往 【金华金东中转场】');
    insert into  t_express(oid,update_time,content) value (1,'2020-01-23 20:03:00','快件到达 【金华金东中转场】');
    insert into  t_express(oid,update_time,content) value (1,'2020-01-23 22:36:00','快件在【金华金东中转场】已装车,准备发往 【北京首都机场集散中心2】');
    insert into  t_express(oid,update_time,content) value (1,'2020-01-24 16:01:00','快件到达 【北京首都机场集散中心2】');
    insert into  t_express(oid,update_time,content) value (1,'2020-01-24 16:22:00','快件在【北京首都机场集散中心2】已装车,准备发往 【石家庄高开集散中心】');
    insert into  t_express(oid,update_time,content) value (1,'2020-01-25 03:14:00','快件到达 【石家庄高开集散中心】');
    insert into  t_express(oid,update_time,content) value (1,'2020-01-25 06:14:00','快件在【石家庄高开集散中心】已装车,准备发往 【衡水桃城集散点】');
    insert into  t_express(oid,update_time,content) value (1,'2020-01-25 13:38:00','快件到达 【衡水桃城集散点】');
    insert into  t_express(oid,update_time,content) value (1,'2020-01-26 06:26:00','快件在【衡水桃城集散点】已装车,准备发往 【衡水市桃城区肖家屯新村营业点】');
    insert into  t_express(oid,update_time,content) value (1,'2020-01-25 07:23:00','快件到达 【衡水市桃城区肖家屯新村营业点】');
    insert into  t_express(oid,update_time,content) value (1,'2020-01-25 08:20:00','快件交给潘君策,正在派送途中(联系电话:13788888888,顺丰已开启“安全呼叫”保护您的电话隐私,请放心接听!)');
    insert into  t_express(oid,update_time,content) value (1,'2020-01-25 10:01:00','快件派送不成功(因电话无人接听/关机/无信号,暂无法联系到收方客户),正在处理中,待再次派送');
    insert into  t_express(oid,update_time,content) value (1,'2020-01-25 11:37:00','已签收,感谢使用顺丰,期待再次为您服务');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
  • 相关阅读:
    k8s内网通信时如何配置NAT
    VUE | key的内部原理、Vue监测数据的原理、Vue.set()和vm.$set()的使用
    JS数据算法
    ARM的七种工作模式
    STC8单片机PWM定时器+EC11编码器实现计数
    [Vue]写一个简单的文件上传控件
    Linux命令type和which的区别
    Postman - 设置变量
    解决安装 WP Super Cache 插件提示 Advanced-Cache.Php 是另一个插件创建的
    2022年物联网统计数据
  • 原文地址:https://blog.csdn.net/m0_63953077/article/details/127676883