设计数据库及通用视图实现api接口

2019-04-24  本文已影响0人  爱修仙的道友

一、设计数据库

from django.db import models


class GoodsCategory(models.Model):
    """商品类别"""

    name = models.CharField(max_length=30, verbose_name="类别名", help_text="类别名")

    create_time = models.DateTimeField("创建时间", auto_now_add=True)
    update_time = models.DateTimeField("更新时间", auto_now=True)

    class Meta:
        db_table = "tb_goods_Category"
        verbose_name = "商品类别"
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.name


class Goods(models.Model):
    """商品"""

    category = models.ForeignKey(GoodsCategory, verbose_name="商品类目",on_delete=models.SET_NULL,null=True,blank=True)

    goods_sn = models.CharField(max_length=50, default="", verbose_name="商品唯一货号")
    name = models.CharField(max_length=100, verbose_name="商品名")
    sold_num = models.IntegerField(default=0, verbose_name="商品销售量")
    market_price = models.FloatField(default=0, verbose_name="市场价格")
    create_time = models.DateTimeField("创建时间", auto_now_add=True)
    update_time = models.DateTimeField("更新时间", auto_now=True)

    class Meta:
        db_table = "tb_goods"
        verbose_name = '商品'
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.name

二、通用类视图

from django.views import View
from django.http import HttpResponse
from django.core.serializers import serialize


from . import models


class GoodsListView(View):
    """商品列表"""

    def get(self, request):
        """
        通用View实现商品列表展示
        :param request:
        :return:
        """

        goods = models.Goods.objects.all()
        # django 提供的序列化器
        json_data = serialize("json", goods)

        return HttpResponse(json_data,content_type="application/json")

三、路由配置

from django.urls import path
from . import views

urlpatterns = [
    path('goods/',views.GoodsListView.as_view(),name='goods_list')
]

四、postman接口测试


image.png
上一篇下一篇

猜你喜欢

热点阅读