Пример #1
0
def addGoods(request):
    goods=Goods()
    goods.name=request.GET['name']
    goods.description=request.GET['description']
    goods.picture1=open("tmp\\nokia1.jpg","rb")
    goods.picture2=open("tmp\\nokia2.jpg","rb")
    goods.picture3=open("tmp\\nokia3.jpg","rb")
    goods.price=105
#    goods.time=datetime.datetime.now
    goods.save()
    return HttpResponse("success")
Пример #2
0
def buy(request):
    gid=request.GET['id']
    good=Goods.objects(pk=gid).first()
    buylog=Buy()
    buylog.good=good
    request.user.buylog=request.user.buylog+[buylog]
    request.user.save()
    return HttpResponse("buy success")
Пример #3
0
def getGoods(request):
    gid=request.GET['id']
    goods=Goods.objects(pk=gid).first()
    result=goods.to_mongo()
    del(result['_types'])
    result['picture1']=endpoint+"goods/getPicture?id="+str(result['_id'])+"&&num=1"
    result['picture2']=endpoint+"goods/getPicture?id="+str(result['_id'])+"&&num=2"
    result['picture3']=endpoint+"goods/getPicture?id="+str(result['_id'])+"&&num=3"
    del(result['_cls'])
    del(result['_id'])
    return HttpResponse(dumps(result))
Пример #4
0
def getPicture(request):
    gid=request.GET['id']
    num=int(request.GET['num'])
    good=Goods.objects(pk=gid).first()
    if num==1:
        image=good.picture1.read()
    if num==2:
        image=good.picture2.read()
    if num==3:
        image=good.picture3.read()
    return HttpResponse(image,mimetype="image/jpeg")
Пример #5
0
def getGoodsList(request):
    buylogs=request.user.to_mongo()['buylog']
    for buylog in buylogs:
#        buylog=buylog.to_mongo()
        del(buylog['_types'])
        del(buylog["_cls"])
        buylog["time"]=str(buylog["time"])
        name=Goods.objects(pk=buylog["good"].id).first().name
        buylog['name']=name
        buylog['id']="http://192.168.47.19:8080/goods/getGoods?id="+str(buylog["good"].id)
        del(buylog['good'])
    return HttpResponse(ju.dumps(buylogs))
Пример #6
0
def addNews(request):
    url=request.POST['url']
    news = News()
    user = request.user  # change to request.user
    news.author = user
    news.picture = open(request.FILES['picture'].temporary_file_path(), "rb")
    news.voice = open(request.FILES['voice'].temporary_file_path(), "rb")#change to data from request
    result=urlparse.urlparse(url)
    params=urlparse.parse_qs(result.query,True)
    gid=params['id']
    news.good = Goods.objects(pk=gid[0]).first()
    news.save()
    return HttpResponse("success")
Пример #7
0
import os
import sys

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()
Пример #8
0
# coding = utf-8
import os, sys
pwd = os.path.dirname(os.path.relpath(__file__))
sys.path.append(pwd + '../')
from db_tools.data.product_data import row_data
os.environ.setdefault('DJANGO_SETTINGS_MODULE', "MxShop.settings")

import django
django.setup()
from goods.models import Goods, GoodsCategoryBrand, GoodsImage, GoodsCategory

import re

for goods_detail in row_data:
    print('goods_detail', goods_detail['name'])
    goods = Goods()
    goods.name = goods_detail['name']
    goods.market_price = int(
        re.match(r".*?(\d+\.{0,}\d{0,}).*?",
                 goods_detail['market_price']).group(1))
    goods.sale_price = int(
        re.match(r".*?(\d+\.{0,}\d{0,}).*?",
                 goods_detail['sale_price']).group(1))
    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_images = goods_detail['images'][0] if goods_detail[
        'images'] else ''
    category_name = goods_detail['categorys'][-1]  # 最后一个最精确
    category = GoodsCategory.objects.filter(name=category_name)
Пример #9
0
def parser():
    proxies = {

        'https': 'https://51.140.202.119:8080'
    }

    category_list =['https://www.avito.ru/moskva/tovary_dlya_kompyutera/komplektuyuschie/videokarty']

#                     'https://www.avito.ru/moskva/tovary_dlya_kompyutera/komplektuyuschie/cd_dvd_i_blu-ray_privody',
#                     'https://www.avito.ru/moskva/tovary_dlya_kompyutera/komplektuyuschie/bloki_pitaniya',
#                     'https://www.avito.ru/moskva/tovary_dlya_kompyutera/komplektuyuschie/videokarty',
#                     'https://www.avito.ru/moskva/tovary_dlya_kompyutera/komplektuyuschie/zhestkie_diski',
#                     'https://www.avito.ru/moskva/tovary_dlya_kompyutera/komplektuyuschie/zvukovye_karty',
#                     'https://www.avito.ru/moskva/tovary_dlya_kompyutera/komplektuyuschie/kontrollery',
#                     'https://www.avito.ru/moskva/tovary_dlya_kompyutera/komplektuyuschie/korpusy',
#                     'https://www.avito.ru/moskva/tovary_dlya_kompyutera/komplektuyuschie/materinskie_platy',
#                     'https://www.avito.ru/moskva/tovary_dlya_kompyutera/komplektuyuschie/operativnaya_pamyat',
#                     'https://www.avito.ru/moskva/tovary_dlya_kompyutera/komplektuyuschie/protsessory',
#                     'https://www.avito.ru/moskva/tovary_dlya_kompyutera/komplektuyuschie/sistemy_ohlazhdeniya']

    category_dict = {'https://www.avito.ru/moskva/tovary_dlya_kompyutera/komplektuyuschie/videokarty':
                      'videokarty'}

#                      'https://www.avito.ru/moskva/tovary_dlya_kompyutera/komplektuyuschie/cd_dvd_i_blu-ray_privody':
#                      'cd_dvd_i_blu-ray_privody', 'https://www.avito.ru/moskva/tovary_dlya_kompyutera/komplektuyuschie/bloki_pitaniya':
#                      'bloki_pitaniya', 'https://www.avito.ru/moskva/tovary_dlya_kompyutera/komplektuyuschie/videokarty':
#                      'videokarty', 'https://www.avito.ru/moskva/tovary_dlya_kompyutera/komplektuyuschie/zhestkie_diski':
#                      'zhestkie_diski', 'https://www.avito.ru/moskva/tovary_dlya_kompyutera/komplektuyuschie/zvukovye_karty':
#                      'zvukovye_karty', 'https://www.avito.ru/moskva/tovary_dlya_kompyutera/komplektuyuschie/kontrollery':
#                      'kontrollery', 'https://www.avito.ru/moskva/tovary_dlya_kompyutera/komplektuyuschie/korpusy': 'korpusy',
#                     'https://www.avito.ru/moskva/tovary_dlya_kompyutera/komplektuyuschie/materinskie_platy': 'materinskie_platy',
#                     'https://www.avito.ru/moskva/tovary_dlya_kompyutera/komplektuyuschie/operativnaya_pamyat': 'operativnaya_pamyat',
#                     'https://www.avito.ru/moskva/tovary_dlya_kompyutera/komplektuyuschie/protsessory': 'protsessory',
#                     'https://www.avito.ru/moskva/tovary_dlya_kompyutera/komplektuyuschie/sistemy_ohlazhdeniya': 'sistemy_ohlazhdeniya'}

    for category in category_list:

        avito_html = requests.get(category, proxies=proxies)
        text = BeautifulSoup(avito_html.text, "html.parser")
        pages = text.select('.pagination-page')
        print(text)
    
        # Определяет кол-во страниц, на которых расположены нужные объявления
        for page in pages:
            if page.getText() == 'Последняя':
                m = re.search('(p=)\w+', page.get('href'))
                total_pages = int(m.group(0)[2:])

        # Ходит по страницам, ищет ссылки на товар и записывает их в список links
        links = set()
        y = 0 
        for number_page in range(1, total_pages + 1):
            link = category + '?p=' + str(number_page)
            #Обработка исключений без прерывания цикла
            try:
                avito_html = requests.get(link, proxies=proxies)
            except Exception as e:
                print(e)
                continue    
            text = BeautifulSoup(avito_html.text, "html.parser")
            items = text.select('.item-description-title-link')
            for i in items:
                href = 'https://www.avito.ru' + i.get('href')
                links.add(href)
                print(href)
#            y += 1
#            if y == 1:
#               break
            time.sleep(1)
        print(links)

        # Ходит по ссылкам на товар и заполняет список словарей

        months = {'марта': '03', 'апреля': '04', 'мая': '05', 'июня': '06', 'июля': '07', 'августа': '08',
                  'сентября': '09', 'октября': '10', 'ноября': '11', 'декабря': '12', 'января': '01', 'февраля': '02'}

        x = 0
        for item_link in links:
            try:
                item_html = requests.get(item_link, proxies=proxies)
                item_text = BeautifulSoup(item_html.text, "html.parser")
                info_dict = {}

                meta_data_list = item_text.select('.title-info-metadata-item')[0].getText().split()
                if meta_data_list[3] == "сегодня":
                    info_dict['avito_date_publication'] = datetime.now().strftime('%Y-%m-%d')
                elif meta_data_list[3] == 'вчера':
                    yesterday = datetime.now() - timedelta(days=1)
                    info_dict['avito_date_publication'] = yesterday.strftime('%Y-%m-%d')
                else:
                    info_dict['avito_date_publication'] = datetime.now().strftime('%Y') + '-' + months[
                        meta_data_list[4]] + '-' + meta_data_list[3]

                info_dict['avito_time_publication'] = meta_data_list[-1]

                info_dict['id'] = meta_data_list[1].strip(',')

                info_dict['name'] = item_text.select('.title-info-title-text')[0].getText()

                info_dict['price'] = item_text.select('.js-item-price')[0].getText()

                info_dict['adress'] = ''.join(item_text.select('.item-map-location')[0].getText().split()[1:-2])

                info_dict['ad_text'] = item_text.select('.item-description-text')[0].getText()

#               info_dict['phone'] = item_text.select('.item-popup-content')

                image_tags = item_text.select('.gallery-img-frame')
                image_links = ''
                for image_tag in image_tags:
                    image_links += image_tag['data-url'] + ','
                info_dict['photo_link'] = image_links
                print(info_dict)

                #Записываем данные из словарей в бд, через модель django
                good = Goods(name=info_dict['name'], avito_ad_number=info_dict['id'],
                             publication_date=info_dict['avito_date_publication'],
                             publication_time=info_dict['avito_time_publication'], text=info_dict['ad_text'],
                             photo_link=info_dict['photo_link'], adress=info_dict['adress'], price=info_dict['price'],
                             category=category_dict[category])
                good.save()

#                x += 1
#                if x == 2:
#                   break
                time.sleep(1)
            except BaseException as er:
                print(er)
                continue
Пример #10
0
# 获取当前文件的所在文件夹
currentDir = os.path.dirname(__file__)
# 将项目根目录追加到path里
sys.path.append(currentDir + "../")
# print(sys.path)
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'ShopDjango.settings')

import django
django.setup()

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

for product in row_data:
    goods = Goods()
    goods.name = product.get('name')
    goods.market_price = float(
        int(product.get('market_price').replace("¥", "").replace("元", "")))
    goods.shop_price = float(
        int(product.get('sale_price').replace("¥", "").replace("元", "")))
    goods.goods_brief = product.get('desc') if product.get(
        'desc') is not None else ""
    goods.goods_desc = product.get('goods_desc') if product.get(
        'goods_desc') is not None else ""
    goods.goods_front_image = product.get('images')[0] if product.get(
        'images') else ""
    goodsImages = product.get('images')
    category_name = product.get('categorys')[-1]
    # objects.filter会获取一个集合
    category = GoodsCategory.objects.filter(name=category_name)
Пример #11
0

pwd = os.path.dirname(os.path.relpath(__file__))
sys.path.append(pwd+"../")
os.environ.setdefault("DJANGO_SETTINGS_MODULE","MxShop.settings")

import django
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"]   #实例化的name等于 goods_detail中的name
    #实例化的market_price等于goods_detail中的market_price,但是要将“¥”转换为空串,将“元”转换为空串,然后将剩下的数字转换为int类型
    #接着再将int类型的数据转换为float类型的数据
    goods.market_price = float(int(goods_detail["market_price"].replace("¥","").replace("元","")))    #市场价格
    goods.shop_price = float(int(goods_detail["sale_price"].replace("¥","").replace("元","")))    #本店价格

    # 商品的简介对应goods_detail中的desc内容,如果goods_detail中的desc内容不为None,就设置为空串
    goods.goods_brief = goods_detail["desc"] if goods_detail["desc"] is not None else ""

    #商户的描述对应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 ""
Пример #12
0
lld = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(lld)
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'ScProduct.settings')

import django
django.setup()

from goods.models import Goods, GoodsCategory

data = pd.read_csv('data/water_classnum.csv')
# from db_tools.data.product_data import row_data
for index, row in data.iterrows():
    # if index > 5:
    #     break
    # print(len(eval(row['classes'])))
    goods = Goods()
    goods.gtin = row['id']
    goods.company = row['company']
    goods.spec = row['spec']
    goods.name = row['name']
    goods.brand = row['brand']

    if len(eval(row['classes'])) > 0:
        goods.is_class = 1
        goods.save()
        classes = eval(row['classes'])
        for class_name in classes:
            category = GoodsCategory.objects.filter(name=class_name)
            goods.classes.add(category[0])
    else:
        goods.save()
Пример #13
0
import sys, os

pwd = os.path.dirname(os.path.realpath(__file__))
sys.path.append(pwd + '../')
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myshop.settings')

import django
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]
Пример #14
0
import sys

pwd = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
sys.path.append(pwd)
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'MxShop.settings')

import django

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]
    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()
Пример #16
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)
Пример #17
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数据导入完成')
Пример #18
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()
Пример #19
0
    def post(self, request, format=None):
        file_obj = request.data["file"]
        data = pd.read_excel(file_obj)
        try:
            for index, row in data.iterrows():
                goods = Goods()
                goods.gtin = row['id']
                goods.company = row['company']
                goods.spec = row['spec']
                goods.name = row['name']
                goods.brand = row['brand']

                if len(eval(row['classes'])) > 0:
                    goods.is_class = 1
                    goods.save()
                    classes = eval(row['classes'])
                    for class_name in classes:
                        category = GoodsCategory.objects.filter(
                            name=class_name)
                        goods.classes.add(category[0])
                else:
                    goods.save()
        except Argument:
            print(Argument)
            return Response({"msg": "上传文件失败,请检查文件格式是否正确"})
        else:
            return Response(status=201, data={"code": 201, "msg": "上传数据成功"})
        # print(data)
        # print("here")

        # return Response(status=201)


# def DashboardView(self):
#     total = Goods.objects.all().count()
#     is_class = Goods.objects.filter(is_class=1).count()
#     no_class = total - is_class
#     class_per = is_class / total
#     json_data = {
#         "total": total,
#         "is_class": is_class,
#         "no_class": no_class,
#         "percent": class_per
#     }
#     return JsonResponse(json_data,safe=False)
# class DashboardView(View):
#     def get(self, request):
#         total = Goods.objects.all().count()
#         is_class = Goods.objects.filter(is_class=1).count()
#         no_class = total - is_class
#         class_per = is_class / total
#         json_data = {
#             "total": total,
#             "is_class": is_class,
#             "no_class": no_class,
#             "percent": class_per
#         }
#         return JsonResponse(json.dump(json_data),safe=False)
Пример #20
0
from django.test import TestCase

from goods.models import Base, Goods, Technic, Materials, Colors, Holidays, Styles

b = Base(name='Расческа', size='5')
t = Technic(name='')
m = Materials(name='')
c = Colors(name='')
h = Holidays(name='', date='')
s = Styles(name='')
b.save()
t.save()
m.save()
c.save()
h.save()
s.save()
g = Goods(name='',
          base=b,
          technic=c,
          price=10,
          material=m,
          description='<b>Tests Goods</b>',
          color=c,
          holiday=h,
          style=s,
          age=Goods.MID,
          consumer=Goods.MAN,
          count=1)
Пример #21
0
#独立使用django的models
import sys
import os

# 获取当前文件路径  __file__ 文件的完整路径和文件名
pwd = os.path.dirname(os.path.realpath(__file__))
sys.path.append("../" + pwd)
# 和manage.py 中的环境变量保持一致
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "TTSX.settings")
# c:\\xxx\\b.py
# Django 版本大于等于1.7的时候,需要加上下面两句
import django
# 否则会抛出错误 django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet.
django.setup()

from goods.models import Goods

# all_categorys = GoodsCategory.objects.all()

from db_tools.data.product_data import row_data

for goods_dateil in row_data:
    goods = Goods()
    goods.name = goods_dateil["name"]
Пример #22
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()
Пример #23
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()
Пример #24
0
import sys
import os
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
Пример #25
0
import os
import sys

pwd = os.path.dirname(os.path.realpath(__file__))
sys.path.append(pwd + '../')
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'djangoProject.settings')

import django

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.shop_price = goods_detail['shop_price']
    goods.goods_brief = goods_detail['desc'] if goods_detail[
        'desc'] is not None else ''
    goods.goods_desc = goods_detail['desc'] if goods_detail[
        '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]
    category = GoodsCategory.objects.filter(name=category_name)
    if category:
        goods.category = category[0]
    goods.save()

    for goods_image in goods_detail['images']:
Пример #26
0
import os, sys

dir_path = os.path.dirname(os.path.abspath(__file__))
sys.path.append(dir_path)
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()
import os
import sys

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

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "FoodMarket.settings")

import django
django.setup()

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]
Пример #28
0
import django

from db_tools.data.product_data import row_data

pwd = os.path.dirname(os.path.relpath(__file__))
sys.path.append(pwd+'../')

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()
Пример #29
0
import sys
import os

pwd = os.path.dirname(os.path.realpath(__file__))
sys.path.append(pwd + "../")
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "MxShop.settings")

import django
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]
Пример #30
0
#1.模拟pyhton正式model环境
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "AtguiguShop.settings")

#2.导入django设置
import django
django.setup()

#3.导入数据,和对应的Model
from db_tools.data.product_data import row_data

from goods.models import Goods, GoodsCategory, GoodsImage

for goods_detail in row_data:
    # print(goods_detail)
    instance = Goods()
    instance.market_price = float(goods_detail["market_price"].replace(
        "¥", "").replace("元", ""))
    #商品名称
    instance.name = goods_detail["name"] if goods_detail[
        "name"] is not None else ""
    #商品简单描述
    instance.goods_brief = goods_detail["desc"] if goods_detail["desc"] else ""
    #本店价格
    instance.shop_price = float(goods_detail["sale_price"].replace(
        "¥", "").replace("元", ""))
    #商品详细介绍
    instance.goods_desc = goods_detail["goods_desc"] if goods_detail[
        "goods_desc"] else ""

    #商品的封面
Пример #31
0
import sys
import os

pwd = os.path.dirname(os.path.realpath(__file__))
sys.path.append(pwd + "../")
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "daydayfresh.settings")

import django
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()
Пример #32
0
# Desc:
import sys
import os

pwd = os.path.dirname(os.path.realpath(__file__))
sys.path.append(pwd + '../')
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mxshopnew.settings')

import django
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]
    categories = GoodsCategory.objects.filter(name=category_name)
    if categories:
        goods.category = categories[0]
Пример #33
0
pwd = os.path.dirname(os.path.realpath(
    __file__))  #os.path.name的作用是返回文件路径,os.path.realpath的作用是返回path的真实路径
sys.path.append(pwd + "../")  #sys.path.append作用是自定义模块路径,把MxShop这个路径加了进去。
os.environ.setdefault("DJANGO_SETTINGS_MODULE",
                      "MxShop.settings")  #指定根目录就是这个项目的目录,后面他就会自动来这个目录下来找这个文件

import django
django.setup()  #不知道这个函数是干嘛的,但setup是安装的意思,或者也是启动的意思

from goods.models import Goods, GoodsCategory, GoodsImage  #这句一定要放在14、15这两行的下面,不能放在最顶上。因为必须要先把django引入之后才能写这个,不然会报错
from db_tools.data.product_data import row_data  #引入商品

for goods_detail in row_data:
    #上面的row_data是在produ_data.py这个文件里引入的
    goods = Goods()
    goods.name = goods_detail["name"]
    goods.market_price = float(
        int(goods_detail["market_price"].replace("¥", "").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.brief是在Goods的models中,后面的goods_detail是在product中,这几个需要一一对应
    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 ""
Пример #34
0
sys.path.insert(0, dirname)
print(sys.path)

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "atguigushop.settings")

import django

django.setup()

from db_utils.data.product_data import row_data

from goods.models import Goods, GoodsCategory, GoodsImage

for item in row_data:
    goods = Goods()
    goods.market_price = float(item["market_price"].replace("元", "").replace(
        "¥", ""))
    goods.shop_price = float(item["market_price"].replace("元",
                                                          "").replace("¥", ""))
    goods.name = item["name"] if item["name"] is not None else ""
    # 商品的简单描述
    goods.goods_brief = item["desc"] if item["desc"] is not None else ""
    # 商品的详细描述
    goods.goods_desc = item["goods_desc"] if item["goods_desc"] else ""

    goods.goods_front_image = item["images"][0] if item["images"] else ""

    # 类目:三级类目或者二级类目
    category_name = item["categorys"][-1]
    # 查看类目是否存在
Пример #35
0
import sys
import os

pwd = os.path.dirname(os.path.relpath(__file__))
sys.path.append(os.path.abspath(os.path.join(pwd, '..')))
sys.path.append(pwd)
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'Freshshop.settings')
import django
django.setup()

from db_tools.data import product_data
from goods.models import Goods, GoodsBannerImage, GoodsCategory

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

    category_name = product['categorys'][-1]
    category = GoodsCategory.objects.filter(name=category_name)
    if category:
        goods.category = category[0]
Пример #36
0
def upload_goods(request):
    if not request.session.get('userName', None):
        return render(request, "login.html")
    if request.method == "POST":
        name = request.POST.get('goodsname')
        detail_msg = request.POST.get('desc')
        type = request.POST.get('type')
        type = dicts[type]
        price = request.POST.get('price')
        state = 0
        num = request.POST.get('num')
        image = request.FILES.get('image')
        nick_name = request.session.get('userName')
        owner = UserProfile.objects.get(nick_name=nick_name)
        print(name, detail_msg, type, price, num, image, owner)
        if not all([owner, num, price, type, detail_msg, name]):
            return render(request, 'upload_goods.html',
                          {'errmsg': '请将信息补充完整!'})
        try:
            if type == 1:
                from_time = request.POST.get('from_time')
                to_time = request.POST.get('to_time')
                print(from_time, to_time)
                new_goods = Goods(name=name,
                                  desc=detail_msg,
                                  type=type,
                                  fromtime=from_time,
                                  totime=to_time,
                                  price=price,
                                  state=state,
                                  num=num,
                                  owner=owner)
            elif type == 2:
                location = request.POST.get('location')
                new_goods = Goods(name=name,
                                  desc=detail_msg,
                                  type=type,
                                  location=location,
                                  price=price,
                                  state=state,
                                  num=num,
                                  owner=owner)
            else:
                new_goods = Goods(name=name,
                                  desc=detail_msg,
                                  type=type,
                                  price=price,
                                  state=state,
                                  num=num,
                                  owner=owner)
            if image != None:
                new_goods.image = image
            new_goods.save()
        except Exception as e:
            print("e: ", e)  # 把异常打印出来
            return render(request, 'upload_goods.html', {
                'username': nick_name,
                'errmsg': '未知类型错误'
            })

            # 注册完,还是返回注册页。
        return render(request, 'upload_goods.html', {'username': nick_name})
    nick_name = request.session.get('userName')
    return render(request, 'upload_goods.html', {'username': nick_name})
Пример #37
0
    ship_free = models.BooleanField(default=False)
    # 商品封面图
    goods_front_image = models.ImageField(upload_to="goods/images/", null=True, blank=True, verbose_name="封面图")
    # 商品是否新品
    is_new = models.BooleanField(default=False, verbose_name='是否热销')
    is_hot = models.BooleanField(default=False, verbose_name='是否热销')
    add_time = models.DateTimeField(default=datetime.now, verbose_name='添加时间')

'''

if __name__ == "__main__":
    from goods.models import Goods, GoodsCategory, GoodsImage
    from db_tools.data.product_data import row_data

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

        # 类别
        category = GoodsCategory.objects.filter(name=g['categorys'][-1])
        if category:
            g_instance.category = category[0]
        g_instance.save()