03-01 項目准備


后端框架:django-restframwork

小程序: 創建一個全新的小程序,appid用上面我們注冊的正式的appid

小程序的靜態文件:在項目目錄中創建images文件夾存放小程序重要用到的圖片

models.py數據表

后端所有數據表

from django.db import models

import django.utils.timezone as timezone
# Create your models here.
#用戶表,沒有用django的用戶表
class Wxuser(models.Model):
    #主鍵
    id = models.AutoField(primary_key=True)
    #用戶微信唯一標識
    openid=models.CharField(max_length=255)
    #姓名
    name = models.CharField(max_length=50)
    #頭像
    avatar = models.CharField(max_length=200)
    #語言
    language = models.CharField(max_length=50)
    #國家,城市,省份
    province = models.CharField(max_length=50)
    city = models.CharField(max_length=50)
    country = models.CharField(max_length=50)
    #性別
    gender = models.CharField(max_length=50)
    #creat_time=models.DateField(auto_now_add=True,default=timezone.now)

 #商品分類表
class Category(models.Model):
    #分類id
    cat_id=models.AutoField(primary_key=True)
    #分類名稱
    category_name=models.CharField(max_length=50)
    #分類的序號
    p_order=models.IntegerField(default=0)
    #creat_time = models.DateField(auto_now_add=True,default=timezone.now)

 #商品表
class Products(models.Model):
    #商品id
    product_id=models.AutoField(primary_key=True)
    #貨號
    bn=models.CharField(max_length=200)
    #條碼
    barcode=models.CharField(max_length=200)
    #名稱
    name=models.CharField(max_length=200)
    #價格
    price=models.DecimalField(max_digits=5, decimal_places=2)
    #單位重量
    weight=models.CharField(max_length=200)
    #單位
    unit=models.CharField(max_length=200)
    #商品分類
    cat_id = models.ForeignKey(to="Category",to_field="cat_id", related_name="Products",db_constraint=False,on_delete=models.CASCADE)
    #詳情介紹
    intor = models.CharField(max_length=250)
    #商品簡介
    brief = models.CharField(max_length=250)
    #商品圖片
    image=models.OneToOneField(to='Images',to_field='image_id',on_delete=models.CASCADE,db_constraint=False,default="")
    #默認圖片
    image_default_id = models.CharField(max_length=250)
    #creat_time = models.DateField(auto_now_add=True,default=timezone.now)

#訂單表
class Order(models.Model):
    #訂單id
    order_id=models.CharField(max_length=250,unique=True,primary_key=True)
    #訂單的創建時間
    createtime=models.DateField(auto_now_add=True)
    #訂單狀態
    status_choices = (("active", '活動訂單'), ("dead", '作廢訂單'), ("finish", '已完成訂單'))
    status = models.CharField(choices=status_choices, default="active",max_length=50)
    #訂單支付狀態
    pay_status_choices=((0, '未付款'), (1, '已付款'))
    pay_status = models.SmallIntegerField(choices=pay_status_choices, default=0)
    #訂單支付金額
    payed=models.DecimalField(max_digits=5, decimal_places=2)
    #訂單已支付金額
    order_total=models.DecimalField(max_digits=5, decimal_places=2)
  	#訂單發貨狀態
    ship_status_choices=((0, '未發貨'), (1, '已發貨'),(2, '部分發貨'))
    ship_status = models.SmallIntegerField(choices=ship_status_choices, default=0)
    #支付方式
    pay_app =models.CharField(max_length=100)
    #購買者會員id
    member_id=models.IntegerField(default=0)
    #開獎方式
    get_method=models.CharField(max_length=100)
    #訂單包含商品數量
    quantity=models.IntegerField(default=0)
    #訂單祝福語
    memo=models.CharField(max_length=200,null=True)
    #creat_time = models.DateTimeField(auto_now_add=True)
    
#訂單子訂單
class Order_items(models.Model):
    #item_id
    item_id = models.AutoField(primary_key=True)
    #訂單id
    order_id = models.ForeignKey(to="Order", to_field="order_id", related_name="Order_items", db_constraint=False,on_delete=models.CASCADE)
    #商品id
    product_id= models.IntegerField(default=0)
    #貨號
    bn = models.CharField(max_length=200)
    #條碼
    barcode = models.CharField(max_length=200)
    #商品名稱
    name = models.CharField(max_length=200)
    #商品圖片
    image = models.OneToOneField(to='Images', to_field='image_id', on_delete=models.CASCADE,db_constraint=False,default="")
    #商品價格
    price = models.DecimalField(max_digits=5, decimal_places=2)
    #明細商品總額(成交價x數量)
    amount=models.DecimalField(max_digits=5, decimal_places=2)
    #明細商品購買數量
    nums=models.IntegerField()
    #明細商品發貨數量
    send_nums=models.IntegerField(null=True)
    #商品簡介
    brief=models.CharField(max_length=250)
    #獲得者會員用戶名 
    get_mermber_id=models.ForeignKey(to="Wxuser",to_field="id",related_name="Order_items_get",db_constraint=False,on_delete=models.CASCADE,null=True)
    #購買者者會員用戶名
    buy_member_id = models.ForeignKey(to="Wxuser", to_field="id", related_name="Order_items_buy", db_constraint=False,on_delete=models.CASCADE,null=True)
    #收貨人
    consignee_name=models.CharField(max_length=200,null=True)
    #收貨地區
    consignee_area=models.CharField(max_length=200,null=True)
    #收貨地址
    consignee_address=models.CharField(max_length=200,null=True)
    #收貨地郵編
    consignee_zip=models.CharField(max_length=200,null=True)
    #收貨人手機
    consignee_mobile=models.CharField(max_length=200)
    #是否填寫過收貨地址
    status_choices = (("send", '已填寫'), ("nosend", '未填寫'))
    status = models.CharField(choices=status_choices, default="nosend",max_length=50)
    #creat_time = models.DateTimeField(auto_now_add=True)

class Images(models.Model):
    #主鍵
    image_id=models.CharField(max_length=200,primary_key=True)
    #存儲引擎
    storage=models.CharField(max_length=200)
    #圖片名稱
    image_name=models.CharField(max_length=250)
    #原始圖唯一標識
    ident=models.CharField(max_length=250)
    #原始圖URL地址
    url=models.CharField(max_length=250)
    #大圖唯一標識
    l_ident=models.CharField(max_length=250)
    #大圖URL地址
    l_url = models.CharField(max_length=250)
    #中圖唯一標識
    m_ident = models.CharField(max_length=250)
    #中圖URL地址
    m_url = models.CharField(max_length=250)
    #小圖唯一標識
    s_ident = models.CharField(max_length=250)
    #小圖URL地址
    s_url = models.CharField(max_length=250)
    #迷你圖唯一標識
    xs_ident = models.CharField(max_length=250)
    #迷你圖URL地址
    xs_url = models.CharField(max_length=250)
    #寬度
    width=models.CharField(max_length=250)
    #高度
    height = models.CharField(max_length=250)
    status = models.CharField(default="false", max_length=50)
#訂單開獎方式表
class Order_methons(models.Model):
    #訂單id
    order=models.OneToOneField(to='Order', to_field='order_id',  on_delete=models.CASCADE,db_constraint=False,default="")
    #開獎時間
    opentime=models.DateTimeField(null=True)
    #開獎人數
    open_number=models.IntegerField(default=0)
    #獲獎人id
    get_member=models.OneToOneField(to='Wxuser',null=True, to_field='id', on_delete=models.CASCADE,db_constraint=False,default="")
    #獲得方法
    get_method=models.CharField(max_length=50,default="")
    #開獎狀態
    status_choices = (("begin", '未開獎'), ("read", '准備開獎'),('finish',"已經開獎"))
    status = models.CharField(choices=status_choices, default="begin", max_length=50)
    view_time=models.DateTimeField(null=True)
 #會員參與表
class Member_joins(models.Model):
    id=models.AutoField(primary_key=True)
    #訂單id
    order=models.OneToOneField(to='Order', to_field='order_id',  on_delete=models.CASCADE,db_constraint=False,default="")
    #會員id
    member=models.ForeignKey(to='Wxuser', to_field='id', on_delete=models.CASCADE,db_constraint=False,default="")
    #參與的form_id
    form_id=models.CharField(default=0,max_length=250)
    #creat_time = models.DateTimeField(auto_now_add=True)



#python3 manage.py makemigrations
#python3 manage.py migrate
#python3 manage.py runserver

序列化組件

MySer.MySer.py

from rest_framework import serializers
from api import models


class ProductsSerializer(serializers.ModelSerializer):
    class Meta:
        model = models.Products
        fields = '__all__'
        depth = 1


class CategorySerializer(serializers.ModelSerializer):
    class Meta:
        model = models.Category
        fields = '__all__'

class OrderSerializer(serializers.ModelSerializer):
    class Meta:
        model = models.Order
        fields="__all__"

class OrdermethonsSerializer(serializers.ModelSerializer):
    class Meta:
        model = models.Order_methons
        fields = "__all__"



class OrderitemsSerializer(serializers.ModelSerializer):
    class Meta:
        model = models.Order_items
        fields="__all__"
        depth = 1


class WxuserSerializer(serializers.ModelSerializer):
    class Meta:
        model = models.Wxuser
        fields = "__all__"

class MemberJoinSerializer(serializers.ModelSerializer):
    class Meta:
        model = models.Member_joins
        fields = "__all__"



class MemberJoinallSerializer(serializers.ModelSerializer):
    class Meta:
        model = models.Member_joins
        fields = "__all__"
        depth=1

MySer.shareSer.py

from rest_framework import serializers
from api import models


class ProductsSerializer1(serializers.ModelSerializer):
    class Meta:
        model = models.Products
        fields = '__all__'
        depth = 1


class CategorySerializer1(serializers.ModelSerializer):
    class Meta:
        model = models.Category
        fields = '__all__'

class OrderSerializer1(serializers.ModelSerializer):
    class Meta:
        model = models.Order
        fields="__all__"

class ImageSerializer(serializers.ModelSerializer):
    class Meta:
        model =models.Images
        fields="__all__"

class OrdermethonsSerializer1(serializers.ModelSerializer):

    order_id=serializers.CharField(source='order.order_id')
    get_member_id= serializers.SerializerMethodField()
    def get_get_member_id(self,obj):
        if hasattr(obj.get_member, "id"):
            return obj.get_member.id
    class Meta:
        model = models.Order_methons
        fields = "__all__"


class OrderitemsSerializer1(serializers.ModelSerializer):

    get_mermber_id_id = serializers.SerializerMethodField()
    image_id=serializers.SerializerMethodField()
    buy_member_id_id=serializers.SerializerMethodField()
    number=serializers.SerializerMethodField()
    def get_number(self,obj):
        if hasattr(obj,"number"):
            return obj.number
    def get_get_mermber_id_id(self,obj):

        if hasattr(obj.get_mermber_id, "id"):
            return obj.get_mermber_id.id

    def get_image_id(self,obj):
        image_obj=ImageSerializer(obj.image, many=False)
        return image_obj.data
    def get_buy_member_id_id(self,obj):

        return obj.buy_member_id.id
    class Meta:
        model = models.Order_items
        fields="__all__"


class WxuserSerializer1(serializers.ModelSerializer):
    class Meta:
        model = models.Wxuser
        fields = "__all__"


class MemberJoinSerializer1(serializers.ModelSerializer):
    order_id = serializers.CharField(source='order.order_id')
    member_id = serializers.SerializerMethodField()
    def get_member_id(self,obj):
        return obj.member.id
    class Meta:
        model = models.Member_joins
        fields = "__all__"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM