Exemplo n.º 1
0
def import_goods_data():
    from goods.models import Goods, GoodsCategory, GoodsImage

    with open('data/product_data.json', 'r', encoding='utf8') as f:
        row_data = json.loads(f.read())

    for goods_detail in row_data:
        goods = Goods()
        goods.name = goods_detail["name"]
        goods.market_price = float(int(goods_detail["market_price"].replace("¥", "").replace("元", "")))
        goods.shop_price = float(int(goods_detail["sale_price"].replace("¥", "").replace("元", "")))
        goods.goods_brief = goods_detail["desc"] if goods_detail["desc"] is not None else ""
        goods.goods_desc = goods_detail["goods_desc"] if goods_detail["goods_desc"] is not None else ""
        goods.goods_front_image = goods_detail["images"][0] if goods_detail["images"] else ""

        category_name = goods_detail["categorys"][-1]
        category = GoodsCategory.objects.filter(name=category_name)
        if category:
            goods.category = category[0]
        goods.save()

        for goods_image in goods_detail["images"]:
            goods_image_instance = GoodsImage()
            goods_image_instance.image = goods_image
            goods_image_instance.goods = goods
            goods_image_instance.save()
    def import_product_data(self, datas):
        from goods.models import Goods
        from goods.models import GoodsCategory
        from goods.models import GoodsImage
        for data in datas:
            good = Goods()
            good.name = data['name']

            # 商品类别为外键
            # 通过名称筛选出类别再赋值
            category = data['categorys'][-1]
            good_category = GoodsCategory.objects.filter(name=category)
            if category:
                good.category = good_category[0]

            good.market_price = float(data['market_price'].replace('¥', '').replace('元', ''))
            good.shop_price = float(data['sale_price'].replace('¥', '').replace('元', ''))
            good.goods_brief = data['desc'] if data['desc'] is not None else ''
            good.goods_front_image = data['images'][0] if data['images'] is not None else ''
            good.goods_desc = data['goods_desc'] if data['goods_desc'] is not None else ''
            good.save()

            if data['images'] is not None:
                for image in data['images']:
                    good_image = GoodsImage()
                    good_image.goods = good
                    good_image.image = image
                    good_image.save()
Exemplo n.º 3
0
def deal_product(data):
    for goods_detail in data:
        goods = Goods()
        goods.name = goods_detail["name"]
        goods.market_price = float(
            int(goods_detail["market_price"].replace("¥", "").replace("元",
                                                                      "")))
        goods.shop_price = float(
            int(goods_detail["sale_price"].replace("¥", "").replace("元", "")))
        goods.goods_brief = goods_detail["desc"] if goods_detail[
            "desc"] is not None else ""
        goods.goods_desc = goods_detail["goods_desc"] if goods_detail[
            "goods_desc"] is not None else ""
        goods.goods_front_image = goods_detail["images"][0] if goods_detail[
            "images"] else ""

        category_name = goods_detail["categorys"][-1]
        category = GoodsCategory.objects.filter(name=category_name)
        if category:
            goods.category = category[0]
        goods.save()

        for goods_image in goods_detail["images"]:
            goods_image_instance = GoodsImage()
            goods_image_instance.image = goods_image
            goods_image_instance.goods = goods
            goods_image_instance.save()
Exemplo n.º 4
0
    def addgoods(self):
        for books_cate in book_data:
            category = GoodsCategory.objects.filter(pk=books_cate["category"])
            if category:
                for book in books_cate["books"]:
                    goods = Goods()
                    goods.category = category[0]
                    goods.name = book["name"]
                    goods.goods_sn = book["ISBN"]
                    goods.author = book["author"]
                    goods.click_num = goods.sold_num = goods.fav_num = 0
                    goods.goods_num = 200
                    goods.shop_price = book["shop_price"]
                    goods.market_price = goods.shop_price * 1.25
                    goods.bid = goods.shop_price * 0.8
                    goods.goods_brief = book["goods_brief"]
                    goods.goods_desc = book["goods_desc"]
                    goods.goods_front_image = book["images"][0]
                    goods.is_hot = goods.is_new = False
                    goods.save()

                    book_image_list = []
                    for book_image in book["images"]:
                        book_image_instance = GoodsImage()
                        book_image_instance.image = book_image
                        book_image_instance.goods = goods
                        book_image_list.append(book_image_instance)
                    GoodsImage.objects.bulk_create(book_image_list)
Exemplo n.º 5
0
def import_goods(apps, schema_editor):
    from goods.models import Goods, GoodsCategory, GoodsImage

    for goods_detail in product_data.row_data:
        goods = Goods()
        goods.name = goods_detail['name']
        goods.market_price = float(goods_detail['market_price'].replace('¥', '').replace('元', ''))
        goods.shop_price = float(goods_detail['sale_price'].replace('¥', '').replace('元', ''))
        goods.goods_brief = goods_detail['desc'] if goods_detail['desc'] is not None else ''
        goods.goods_desc = goods_detail['goods_desc'] if goods_detail['goods_desc'] is not None else ''
        goods.goods_front_image = goods_detail['images'][0] if goods_detail['images'] else ''

        category_name = goods_detail['categorys'][-1]
        category = GoodsCategory.objects.filter(name=category_name)
        if category:
            goods.category = category[0]
        goods.save()

        for goods_image in goods_detail['images']:
            goods_image_instance = GoodsImage()
            goods_image_instance.image = goods_image
            goods_image_instance.goods = goods
            goods_image_instance.save()
Exemplo n.º 6
0
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "MxShop.settings")

django.setup()

from goods.models import Goods, GoodsCategory, GoodsImage


for goods_detail in row_data:
    goods_install = Goods()
    goods_install.name = goods_detail['name']
    goods_install.market_price = float(int(goods_detail['market_price'].replace("¥", "").replace("元", "")))
    goods_install.shop_price = float(int(goods_detail['sale_price'].replace("¥", "").replace("元", "")))
    goods_install.goods_brief = goods_detail['desc'] and goods_detail['desc'] or ''
    goods_install.goods_desc = goods_detail['goods_desc'] and goods_detail['goods_desc'] or ''
    goods_install.goods_front_image = goods_detail['images'][0] if goods_detail['images'] else ""

    categorys_name = goods_detail['categorys'][-1]
    category = GoodsCategory.objects.filter(name=categorys_name)
    if category:
        goods_install.category = category[0]
    goods_install.save()

    for goods_image in goods_detail['images']:
        goods_image_instace = GoodsImage()
        goods_image_instace.image = goods_image
        goods_image_instace.goods = goods_install
        goods_image_instace.save()


Exemplo n.º 7
0
    #商户的描述对应goods_detail中的goods_desc内容,如果goods_detail中的goods_desc内容不为空,就设置为空串
    goods.goods_desc = goods_detail["goods_desc"] if goods_detail["goods_desc"] is not None else ""

    #商品的封面图等于goods_detail中images中的第一张图,如果没有这么多图片,则设置为空串
    goods.goods_front_image = goods_detail["images"][0] if goods_detail["images"] else ""

    #商品类别的名字等于goods_detail中categorys中的倒数第一个
    category_name = goods_detail['categorys'][-1]

    #有了商品的名字
    #此处用filter(),不用get(),是因为filter()获取不到数据的时候,返回的是一个空的数组,不会抛异常,
    #如果用get(),情况一:数据库里没有;情况二:数据库里查到两条;这两种情况下都是会抛异常的,
    #用get()的话,外面必须加一个try catch,用filter()就不用加try catch
    category = GoodsCategory.objects.filter(name=category_name)
    if category:   #如果查到
        goods.category = category[0]   #商品的类别选搜索到的category的第一个
    goods.save()   #保存

    #图片有轮播图,现在将图片保存起来
    for goods_image in goods_detail["images"]:
        goods_image_instance = GoodsImage()   #实例化
        goods_image_instance.image = goods_image   #实例化对象中的image字段(图片路径)等于goods_image
        goods_image_instance.goods = goods   #实例化对象中的goods字段等于上述的goods
        goods_image_instance.save()   #保存实例化对象






Exemplo n.º 8
0
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "gulishop.settings")

import django
django.setup()


from db_tools.data.product_data import row_data
from goods.models import Goods, GoodsCategory, GoodsImage


for item in row_data:
    goods = Goods()
    goods.name = item['name']
    goods.goods_brief = item['desc'] if item['desc'] else ''
    goods.goods_desc = item['goods_desc'] if item['goods_desc'] else ''
    goods.market_price = item['market_price'].replace('¥', '').replace('元', '')
    goods.shop_price = item['sale_price'].replace('¥', '').replace('元', '')
    goods.goods_front_image = item['images'][0] if item['images'] else ''

    category_name = item['categorys'][-1]
    category_list = GoodsCategory.objects.filter(name=category_name)
    if category_list:
        goods.category = category_list[0]
    goods.save()

    for image in item['images']:
        goods_image = GoodsImage()
        goods_image.goods = goods
        goods_image.image = image
        goods_image.save()
Exemplo n.º 9
0
import django

pwd=os.path.dirname(os.path.realpath(__file__))
sys.path.append(pwd+"../")

#django初始化
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Shop.settings")
django.setup()

from goods.models import Goods,GoodsCategory,GoodsImage#必须在django初始化之后才能引入
from db_tools.data.product_data import row_data

for goods_detail in row_data:
    goods=Goods()
    goods.name=goods_detail["name"]
    goods.market_price=float(int(goods_detail["market_price"].replace("¥","").replace("元","")))
    goods.shop_price=float(int(goods_detail["sale_price"].replace("¥","").replace("元","")))
    goods.goods_brief=goods_detail['desc'] if goods_detail['desc'] is not None else ""
    goods.desc=goods_detail['goods_desc'] if goods_detail['goods_desc'] is not None else ""
    goods.goods_front_image=goods_detail['images'][0] if goods_detail['images'] else ""
    category_name=goods_detail['categorys'][-1]
    category=GoodsCategory.objects.filter(name=category_name)
    if category:
        goods.category=category[0]
    goods.save()

    for goods_image in goods_detail['images']:
        goods_image_obj=GoodsImage()
        goods_image_obj.goods=goods
        goods_image_obj.image=goods_image
        goods_image_obj.save()
Exemplo n.º 10
0
django.setup()

from goods.models import Goods, GoodsCategory, GoodsImage
from db_tools.data.goods_data import row_data

for goods_detail in row_data:
    goods = Goods()
    goods.name = goods_detail['name']
    goods.market_price = float(
        int(goods_detail['market_price'].replace('¥', '').replace('元', '')))
    goods.shop_price = float(
        int(goods_detail['sale_price'].replace('¥', '').replace('元', '')))
    goods.goods_brief = goods_detail['desc'] if goods_detail[
        'desc'] is not None else ''
    goods.goods_desc = goods_detail['goods_desc'] if goods_detail[
        'goods_desc'] is not None else ''
    goods.goods_front_image = goods_detail['images'][0] if goods_detail[
        'images'] is not None else ''

    category_name = goods_detail['categorys'][-1]
    categoryList = GoodsCategory.objects.filter(name=category_name)
    if categoryList:
        goods.category = categoryList[0]
    goods.save()

    for goods_image in goods_detail['images']:
        goods_image_instance = GoodsImage()
        goods_image_instance.image = goods_image
        goods_image_instance.goods = goods
        goods_image_instance.save()
                                                                    "元", ""))
    #商品简单描述
    #下面语法的含义是:如果goods_detail["desc"]不为None直接返回,否则返回”“
    goods.goods_brief = goods_detail["desc"] if goods_detail[
        "desc"] is not None else ""
    #商品富文本描述
    goods.goods_desc = goods_detail["goods_desc"] if goods_detail[
        "goods_desc"] is not None else ""
    #商品封面取images的第一张图片
    #如果没有就返回”“
    goods.goods_front_image = goods_detail["images"][0] if goods_detail[
        "images"] else ""

    #商品输入什么类型
    #去最后一个
    categorys_name = goods_detail["categorys"][-1]
    #最好去查一下是否有这个类型
    categorys = GoodsCategory.objects.filter(name=categorys_name)
    if categorys:
        goods.category = categorys[0]
    #保存goods
    goods.save()

    #保存图片,一张图片放在一个GoodsImage对象里面
    for goods_image in goods_detail["images"]:
        goods_image_instace = GoodsImage()
        goods_image_instace.image = goods_image
        goods_image_instace.goods = goods
        #保存图片
        goods_image_instace.save()
Exemplo n.º 12
0
django.setup()

from goods.models import Goods, GoodsCategory, GoodsImage

from db_tools.data.product_data import row_data

for good in row_data:
    good_instance = Goods()
    good_instance.name = good['name']
    good_instance.goods_desc = good['goods_desc'] if good[
        'goods_desc'] is not None else ''
    good_instance.market_price = good['market_price'].replace('¥', '').replace(
        '元', '')
    good_instance.shop_price = good['sale_price'].replace('¥',
                                                          '').replace('元', '')
    good_instance.goods_brief = good['desc'] if good['desc'] is not None else ''
    good_instance.goods_front_image = good['images'][0] if good[
        'images'] else ''

    category_name = good['categorys'][-1]
    category = GoodsCategory.objects.filter(name=category_name)
    if category:
        good_instance.category = category[0]
    good_instance.save()

    for image in good['images']:
        good_image = GoodsImage()
        good_image.image = image
        good_image.goods = good_instance
        good_image.save()
Exemplo n.º 13
0
import os
import sys

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "django_project.settings")

import django

django.setup()

from db_tool.data.goods_data import goods_data
from goods.models import Category, Goods

for data in goods_data:
    goods = Goods()
    goods.goods_id = data['goods_id']
    goods.category = Category.objects.filter(pk=data['category']).first()
    goods.name = data['name']
    goods.market_price = data['market_price']
    goods.goods_brief = data['goods_brief']
    goods.goods_desc = data['goods_desc']
    goods.goods_front_image = data['goods_front_image']
    goods.periods = data['periods']
    goods.save()

print('goods数据导入完成')
Exemplo n.º 14
0
from goods.models import Goods, GoodsCategory, GoodsImage

from db_tools.data.product_data import row_data

for good in row_data:
    good_detail = Goods()
    good_detail.name = good['name']
    good_detail.market_price = float(good['market_price'].replace('¥',
                                                                  '').replace(
                                                                      '元', ''))
    good_detail.sale_price = float(good['sale_price'].replace('¥', '').replace(
        '元', ''))
    good_detail.goods_brief = good['desc'] if good['desc'] is not None else ''
    good_detail.goods_desc = good['goods_desc'] if good[
        'goods_desc'] is not None else ''
    good_detail.goods_front_image = good['images'][0] if good['images'] else ''

    c_name = good['categorys'][-1]
    category = GoodsCategory.objects.filter(name=c_name)
    if category:
        good_detail.category = category[0]

    good_detail.save()

    for goods_image in good['images']:
        goods_image_instance = GoodsImage()
        goods_image_instance.image = goods_image
        goods_image_instance.goods = good_detail
        goods_image_instance.save()
Exemplo n.º 15
0
pwd = os.path.dirname(os.path.realpath(__file__))
sys.path.append(pwd + "../")
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "MaxShop.settings")

import django
django.setup()

from db_tools.data.product_data import row_data
from goods.models import Goods, GoodsCategory, GoodsImage

for data in row_data:
    goods = Goods()
    goods.name = data["name"]
    goods.shop_price = float(
        int(data["sale_price"].replace("¥", "").replace("元", "")))
    goods.market_price = float(
        int(data["market_price"].replace("¥", "").replace("元", "")))
    goods.goods_brief = data["desc"] if data["desc"] is not None else ""
    goods.goods_desc = data["goods_desc"] if data[
        "goods_desc"] is not None else ""
    goods.goods_font_image = data["images"][0] if data["images"] else ""
    goodscategory = GoodsCategory.objects.filter(name=data["categorys"][-1])[0]
    if goodscategory:
        goods.category = goodscategory
    goods.save()

    for image in data["images"]:
        goods_image = GoodsImage()
        goods_image.image = image
        goods_image.goods = goods
        goods_image.save()
Exemplo n.º 16
0
    #商品详细介绍
    instance.goods_desc = goods_detail["goods_desc"] if goods_detail[
        "goods_desc"] else ""

    #商品的封面
    instance.goods_front_image = goods_detail["images"][0] if goods_detail[
        "images"] else ""

    #设置商品属于哪个商品类别
    categorys_name = goods_detail["categorys"][-1]  #'根茎类',或者
    #查询数据库看看根茎类,是否存在
    categorys = GoodsCategory.objects.filter(name=categorys_name)  #返回的是列

    if categorys:
        #商品数据哪个类目
        instance.category = categorys[0]

    #保存商品数据
    instance.save()

    #保存商品轮播图
    for image in goods_detail["images"]:
        print(image)
        goods_image = GoodsImage()
        #商品--商品轮播图和商品建立关系
        goods_image.goods = instance
        #图片
        goods_image.image = image
        #保存商品轮播图
        goods_image.save()
Exemplo n.º 17
0
from goods.models import Goods, GoodsCategory, GoodsImage
from db_tools.data.product_data import row_data

for goods_detail in row_data:
    goods = Goods()
    goods.name = goods_detail['name']
    goods.market_price = float(
        int(goods_detail['market_price'].replace('¥', '').replace('元', '')))
    goods.shop_price = float(
        int(goods_detail['sale_price'].replace('¥', '').replace('元', '')))
    goods.goods_brief = goods_detail['desc'] if goods_detail[
        'desc'] is not None else ''
    goods.goods_desc = goods_detail['goods_desc'] if goods_detail[
        'goods_desc'] is not None else ''
    goods.goods_front_image = goods_detail['images'][0] if goods_detail[
        'images'] else ''
    category_name = goods_detail['categorys'][-1]
    categories = GoodsCategory.objects.filter(name=category_name)
    if categories:
        goods.category = categories[0]
        goods.save()

        for goods_image in goods_detail['images']:
            goods_image_instance = GoodsImage()
            goods_image_instance.image = goods_image
            goods_image_instance.goods = goods
            goods_image_instance.save()
    else:
        print('%s 添加失败,没有找到对应的分类'.format(goods.name))
from goods.models import Goods, GoodsCategory, GoodsImage
from db_tools.data.product_data import row_data

for import_good_data in row_data:
    db_good = Goods()
    db_good.name = import_good_data["name"]
    # 首页图片路径保存为字符串即可
    db_good.goods_front_image = import_good_data["images"][0] if import_good_data["images"] else ''
    db_good.market_price = float(int(import_good_data["market_price"].replace("¥", "").replace("元", "")))
    db_good.shop_price = float(int(import_good_data["sale_price"].replace("¥", "").replace("元", "")))
    db_good.goods_brief = import_good_data["desc"] if import_good_data["desc"] is not None else ""
    db_good.goods_desc = import_good_data["goods_desc"] if import_good_data["goods_desc"] is not None else ""

    # 取出最后一个根茎类字符串就可以了
    category_name = import_good_data["categorys"][-1]
    # 为什么使用filter不使用get因为使用django的get方法是从数据库的取得一个匹配的结果,返回一个对象,如果记录不存在的话,它会报错,
    # 而且记录多于两条也会报错,而使用filter会返回结果的一个数组,当没有查询到结果时返回空数组。
    goods_category = GoodsCategory.objects.filter(name=category_name)
    if goods_category:
        db_good.category = goods_category[0]
    db_good.save()

    # 把每个图片保存为对象
    if import_good_data["images"]:
        for image in import_good_data["images"]:
            goods_image = GoodsImage()
            goods_image.image = image
            goods_image.goods = db_good
            goods_image.save()

Exemplo n.º 19
0
django.setup()

from goods.models import Goods, GoodsCategory, GoodsImage

from db_tools.data.product_data import row_data

for goods_detail in row_data:
    goods = Goods()
    goods.name = goods_detail["name"]
    goods.market_price = float(
        int(goods_detail["market_price"].replace("¥", "").replace("元", "")))
    goods.shop_price = float(
        int(goods_detail["sale_price"].replace("¥", "").replace("元", "")))
    goods.goods_brief = goods_detail["desc"] if goods_detail[
        "desc"] is not None else ""
    goods.goods_desc = goods_detail["goods_desc"] if goods_detail[
        "goods_desc"] is not None else ""
    goods.goods_front_image = goods_detail["images"][0] if goods_detail[
        "images"] else ""

    category_name = goods_detail["categorys"][-1]
    category = GoodsCategory.objects.filter(name=category_name)
    if category:
        goods.category = category[0]
    goods.save()

    for goods_image in goods_detail["images"]:
        goods_image_instance = GoodsImage()
        goods_image_instance.image = goods_image
        goods_image_instance.goods = goods
        goods_image_instance.save()
Exemplo n.º 20
0
    goods.name = goods_detail["name"]
    # replace("¥", "")把¥替换成 ""
    goods.market_price = float(
        int(goods_detail["market_price"].replace("¥", "").replace("元", "")))
    goods.shop_price = float(
        int(goods_detail["sale_price"].replace("¥", "").replace("元", "")))

    # 如果内容不为None传递给goods_brief ,否则: else(为None) 把None转换为"",传递给goods_brief
    goods.goods_brief = goods_detail["desc"] if goods_detail[
        "desc"] is not None else ""
    goods.goods_desc = goods_detail["goods_desc"] if goods_detail[
        "goods_desc"] is not None else ""
    # 取第一张作为封面图  [如果有就传递值,如果没有(else)传递""。image在数据库默认为str ]
    goods.goods_front_image = goods_detail["images"][0] if goods_detail[
        "images"] else ""

    # 取第三级分类,作为商品的分类
    category_name = goods_detail["categorys"][-1]
    # 选用filter不用get。因为filter没有匹配的返回空字符串,不会抛异常,get会抛异常(只能传外键给goods.category,直接传str会出错)
    category = GoodsCategory.objects.filter(name=category_name)
    print(category[0])  # category是一个对象,goods.category需要字符串,category[0]返回对象的字符串
    if category:
        goods.category = category[0]  # 当前数据的商品的分类
    goods.save()

    # 商品的图片
    for good_image in goods_detail["images"]:
        goods_image_instance = GoodsImage()
        goods_image_instance.image = good_image
        goods_image_instance.goods = goods  # 上面有遍历每一个goods
        goods_image_instance.save()