不做大哥好多年 不做大哥好多年
首页
  • MySQL
  • Redis
  • Elasticsearch
  • Kafka
  • Etcd
  • MongoDB
  • TiDB
  • RabbitMQ
  • 01.GO基础
  • 02.面向对象
  • 03.并发编程
  • 04.常用库
  • 05.数据库操作
  • 06.Beego框架
  • 07.Beego商城
  • 08.GIN框架
  • 09.GIN论坛
  • 10.微服务
  • 01.Python基础
  • 02.Python模块
  • 03.Django
  • 04.Flask
  • 05.SYL
  • 06.Celery
  • 10.微服务
  • 01.Java基础
  • 02.面向对象
  • 03.Java进阶
  • 04.Web基础
  • 05.Spring框架
  • 100.微服务
  • Docker
  • K8S
  • 容器原理
  • Istio
  • 数据结构
  • 算法基础
  • 算法题分类
  • 前置知识
  • PyTorch
  • 01.Python
  • 02.GO
  • 03.Java
  • 04.业务问题
  • 05.关键技术
  • 06.项目常识
  • 10.计算机基础
  • Linux基础
  • Linux高级
  • Nginx
  • KeepAlive
  • ansible
  • zabbix
  • Shell
  • Linux内核

逍遥子

不做大哥好多年
首页
  • MySQL
  • Redis
  • Elasticsearch
  • Kafka
  • Etcd
  • MongoDB
  • TiDB
  • RabbitMQ
  • 01.GO基础
  • 02.面向对象
  • 03.并发编程
  • 04.常用库
  • 05.数据库操作
  • 06.Beego框架
  • 07.Beego商城
  • 08.GIN框架
  • 09.GIN论坛
  • 10.微服务
  • 01.Python基础
  • 02.Python模块
  • 03.Django
  • 04.Flask
  • 05.SYL
  • 06.Celery
  • 10.微服务
  • 01.Java基础
  • 02.面向对象
  • 03.Java进阶
  • 04.Web基础
  • 05.Spring框架
  • 100.微服务
  • Docker
  • K8S
  • 容器原理
  • Istio
  • 数据结构
  • 算法基础
  • 算法题分类
  • 前置知识
  • PyTorch
  • 01.Python
  • 02.GO
  • 03.Java
  • 04.业务问题
  • 05.关键技术
  • 06.项目常识
  • 10.计算机基础
  • Linux基础
  • Linux高级
  • Nginx
  • KeepAlive
  • ansible
  • zabbix
  • Shell
  • Linux内核
  • python基础

  • python模块

  • django

  • flask

  • SYL

    • day01

    • day02

    • day03

    • day04

    • day05

    • day06

    • day07

    • day08

      • 00.作业
      • 01.商品模块表结构分析
        • 02.创建商品APP
        • 03.通过课程查询商品信息
        • 04.支付宝支付原理
        • 05.创建订单并生成支付链接接口
        • 06.订单支付回调接口
      • day09

      • day10

      • day11

      • day12

    • Celery

    • 微服务

    • python
    • SYL
    • day08
    xiaonaiqiang
    2021-03-10
    目录

    01.商品模块表结构分析

    # 1.表结构分析

    # 1.1 商品模块表结构分析

    from django.db import models
    from utils.MyBaseModel import Base
    
    class Goods(Base):
        GOODS_TYPE = (
            ('1', 'Vip'),
            ('2', 'Course')
        )
        CHANNEL_TYPE = (
            ('1', '普通'),
            ('2', '促销')
        )
        course = models.ForeignKey('course.Course', on_delete=models.PROTECT)
        goods_type = models.CharField('商品种类', choices=GOODS_TYPE, max_length=8)
        product_id = models.CharField('产品id', max_length=8)
        title = models.CharField('商品名称', max_length=24)
        price = models.DecimalField('商品价格', max_digits=8, decimal_places=2)
        channel_type = models.CharField('购买渠道', choices=CHANNEL_TYPE, max_length=8)
        period = models.IntegerField('有效期', default=365)
        is_launched = models.BooleanField('是否上架', default=True)
    
        class Meta:
            db_table = 'tb_goods'
    
        def __str__(self):
            return self.title
    
    
    class Orders(Base):
        PAY_METHOD = (
            (1, "支付宝"),
        )
        ORDER_STATUS = (
            (1, "待支付"),
            (2, "已支付"),
            (3, "已取消"),
        )
        user = models.ForeignKey('user.User', on_delete=models.PROTECT, verbose_name="下单用户")
        goods = models.ForeignKey(Goods, on_delete=models.PROTECT)
        order_id = models.CharField('订单号', max_length=24)
        trade_no = models.CharField('支付宝订单号', max_length=32, null=True)  # 28位
        pay_time = models.DateTimeField('支付时间', null=True)
        pay_method = models.CharField('支付方式', choices=PAY_METHOD, default=1, max_length=8)
        status = models.CharField('支付状态', choices=ORDER_STATUS, default=1, max_length=8)
        total_amount = models.DecimalField(max_digits=10, decimal_places=2, verbose_name="商品总金额")
    
        class Meta:
            db_table = 'tb_orders'
    
        def __str__(self):
            return self.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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51

    # 1.2 course/models.py中添加用户购买课程

    class UserCourse(Base):
        """
        用户购买的课程
        """
        user = models.ForeignKey('user.User', on_delete=models.CASCADE, related_name='paycourse')
        course = models.ForeignKey('course.Course', on_delete=models.CASCADE, related_name='payuser')
    
        class Meta:
            db_table = 'tb_usercourse'
    
        def __str__(self):
            return "用户:%s, 课程:%s" % (self.user.username, self.course.title)
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    # 1.3 user/models.py添加VIP表并添加用户关联

    from django.db import models
    from utils.MyBaseModel import Base
    
    # 创建Vip表,并和用户进行关联
    class Vip(Base):
        vip_choise = (
            ('0', '普通用户'),
            ('1', '普通会员'),
            ('2', '高级会员'),
        )
        title = models.CharField('vip名称', max_length=16)
        vip_type = models.CharField('Vip种类',choices=vip_choise ,max_length=4)
        desc = models.CharField('vip描述',max_length=255)
        period = models.IntegerField('有效期', default=365)
    
        class Meta:
            db_table = 'tb_vip'
    
        def __str__(self):
            return self.title
        
        
    class User(AbstractUser):
        phone = models.CharField('手机号',max_length=20)
        img = models.ImageField(upload_to='user',null=True)
        nick_name = models.CharField('昵称',max_length=20)
        address = models.CharField('地址',max_length=255)
    
        vip = models.ForeignKey(Vip, on_delete=models.SET_NULL, default=None, null=True)
        vip_expiration = models.DateField('vip到期时间', blank=True, default=None, null=True)
    
        class Meta:
            db_table = 'tb_user'
    
    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

    # 2.admin.py中注册

    # 2.1 goods/admin.py中注册

    from django.contrib import admin
    from . import models
    
    # Register your models here.
    admin.site.register(models.Goods)
    admin.site.register(models.GoodsCourse)
    admin.site.register(models.Orders)
    
    1
    2
    3
    4
    5
    6
    7

    # 2.2 user/admin.py中注册

    from django.contrib import admin
    from user import models
    
    admin.site.register(models.User)
    admin.site.register(models.Vip)
    
    1
    2
    3
    4
    5
    上次更新: 2024/3/13 15:35:10
    00.作业
    02.创建商品APP

    ← 00.作业 02.创建商品APP→

    最近更新
    01
    04.数组双指针排序_子数组
    03-25
    02
    08.动态规划
    03-25
    03
    06.回溯算法
    03-25
    更多文章>
    Theme by Vdoing | Copyright © 2019-2025 逍遥子 技术博客 京ICP备2021005373号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式