def add_product(): form = AddProductForm() if form.validate_on_submit(): db_sess = db_session.create_session() product = Product() if form.name.data == '-1': product.name = '- 1' else: product.name = form.name.data product.price = form.price.data product.user_id = current_user.id file = form.photo.data filetype = file.filename.split('.')[-1] while True: filename = ''.join(random.choices(ascii_letters + digits, k=25)) + f'.{filetype}' if not os.path.exists(f'static/uploads/{filename}'): break product.photo = filename file.save(f'static/uploads/{filename}') db_sess.add(product) db_sess.commit() return redirect('/') params = {'title': 'Добавление товара', 'form': form} return render_template('add_product_form.html', **params)
def call_api(bdd): """ Request Open Food Facts API Save the results in the database param bdd: database type bdd: database.Database return: None """ headers = {"User-Agent": HEADERS} code_set = set() print("Mise à jour de la base de données...") params = PAYLOAD.copy() for index, category in enumerate(CATEGORIES): params["tag_0"] = category req = requests.get(URL_SEARCH, params=params, headers=headers) results_json = req.json() cat = Category(bdd, category, index) cat.add() for product_info in results_json["products"]: if not product_info["code"] in code_set: code_set.add(product_info["code"]) pro = Product(bdd) pro.cleaner(product_info) pro.add() bdd.add_assoc_pro_cat(pro, index)
def new_products_item(): form = ProductForm() if form.validate_on_submit(): db_sess = db_session.create_session() filename = secure_filename(form.image.data.filename) form.image.data.save('uploads/'+filename) product = Product(form.title.data, form.content.data, '/img/'+filename, form.price.data, form.is_featured.data) db_sess.add(product) db_sess.commit() return redirect(f"/admin/products") return render_template('admin/products_item.html', title='Новый Товар', form=form)
def add_product(name, description, price, count, image, form, res): db_sess = db_session.create_session() imageid = generate_random_trash(10) cat = None for categories in res: if form.category.data in categories: cat = categories[0] new_product = Product(Name=name, Description=description, Price=price, Count=count, ImageId=imageid, Category=cat) with open(f"./static/img/{imageid}.jpg", "wb") as f: f.write(image.data.stream.read()) db_sess.add(new_product) db_sess.commit()
def product_add(): form = ProductForm() if form.is_submitted(): db_sess = db_session.create_session() count = len(db_sess.query(Product).all()) product = Product() product.title = form.title.data.lower() product.content = form.content.data product.connection = form.connection.data if not form.connection.data.isdigit() and str( form.connection.data) != 11 and not str( form.connection.data).startswith('8'): return render_template('product.html', title='Добавление товара', form=form, message='Неверный формат ввода телефона') product.category = request.form['category'] f = request.files['file'] if not f.filename.split('.')[1] in [ 'png', 'jpg', 'bmp', 'ico', 'jpeg', 'gif' ]: return render_template('product.html', title='Добавление товара', form=form, message='Неверный формат картинки') f = f.read() with open(f'static/img/file{count}.jpg', 'wb') as photo: photo.write(f) product.photo = str.encode(f'static/img/file{count}.jpg') current_user.product.append(product) db_sess.merge(current_user) db_sess.commit() return redirect('/') return render_template('product.html', title='Добавление товара', form=form)
def get_all_products_full(cls): raw_products = ProductDBManager.get_all_products_full() products = [Product(*raw_product) for raw_product in raw_products] return products
def get_available_products(cls): raw_products = ProductDBManager.get_available_products() products = [Product(*raw_product) for raw_product in raw_products] return products
def get_all_products(cls) -> List[Product]: raw_products = ProductDBManager.get_all_products() products = [Product(*raw_product) for raw_product in raw_products] return products
def get_product(product_id: int) -> Product: raw_product = ProductDBManager.get_product(product_id) return Product(*raw_product)
def get(self) -> List[object]: return Product().all()
def get(self, product_id: str = None) -> full_product: product = Product().get(product_id=product_id) if product is None: abort(404, custom='Item does not exist') else: return product
def post(self) -> full_product: new_product = api.payload new_product['id'] = str(uuid.uuid4()) Product().add(product_id=new_product['id'], name=new_product['name'], size=new_product['size'], description=new_product['description']) return new_product