def item_init(dic): i = 0 catz = [] for key in dic['name']: seller = Seller.query.filter_by( username=dic['merchant_id'][key]).first() cat = dic['amazon_category_and_sub_category'][key] if pd.isna(cat) is True: cat = 'Other' else: cats = cat.split(' > ') cat = cats[0] if cat not in catz: toAdd = Category(name=cat) db.session.add(toAdd) catz.append(cat) if not seller: toAdd = Seller(username=str(dic['merchant_id'][key]), email=str(dic['merchant_id'][key]) + str(i) + "@NULL") i += 1 toAdd.set_password('123') db.session.add(toAdd) item = Item(id=key, name=dic['name'][key], price=dic['price'][key], quantity=dic['quantity'][key], description=dic['description'][key], seller=Seller.query.filter_by( username=dic['merchant_id'][key]).first(), category=cat) date = '' + str(datetime.now().month) + '/' + str( datetime.now().day) + '/' + str(datetime.now().year) location = ['USA', 'Canada', 'United Kingdom', 'China', 'Japan'] stars = [1, 2, 3, 4, 5] user_id = [] for user in User.query.all(): user_id.append(user.id) for i in range(5): review = Reviews(user_id=random.choice(user_id), item_id=item.id, date_time=date, location=random.choice(location), stars=random.choice(stars), content=get_random_string(10)) db.session.add(review) avg_stars = db.session.query(func.avg( Reviews.stars)).filter(Reviews.item_id == item.id).first() item.avg_user_rating = avg_stars[0] db.session.add(item) #for name in catz: #_search_params = { #'q': name, #'num': 1, #"print_urls":True #} #print(name) #gis.search(search_params=_search_params, path_to_dir='Images', width=500, height=500, custom_image_name=str(name)) db.session.commit()