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")
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")
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))
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")
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))
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")
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()
# 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)
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
# 获取当前文件的所在文件夹 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)
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 ""
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()
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]
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()
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)
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数据导入完成')
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()
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)
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)
#独立使用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"]
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_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()
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
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']:
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]
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()
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]
#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 "" #商品的封面
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()
# 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]
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 ""
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] # 查看类目是否存在
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]
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})
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()