Я создаю сайт электронной коммерции, используя flask. Я использую базу данных SQLite с Flask -SQLalchemy. В основном мне нужны две функции: -
Каждый раз, когда пользователь посещает веб-сайт в первый раз, он сможет добавлять товары в корзину без входа в систему.
Когда пользователь, упомянутый в 1-м пункте, покидает сайт без входа в систему, элементы корзины должны быть сохранены.
В следующий раз, когда пользователь, упомянутый в пункте 2ns, повторно посещает веб-сайт, он должен сохраненные элементы корзины без входа в систему.
Если пользователь входит на веб-сайт, его элементы корзины должны быть добавлены в корзину учетной записи.
Данные корзины не должны удаляться при закрытии окна браузера.
Еще одна вещь, я хочу связать данные корзины, которые я хранится в сеансе с пользователем, который входит в систему после первого добавления элементов корзины.
необходимо ли сохранять элементы корзины в базе данных?
Я пытался реализовать это корзина покупок с помощью сессий, но всякий раз, когда я закрываю окно браузера, я теряю все данные.
Вот мой код. С помощью этого кода я могу хранить элементы корзины до тех пор, пока окно браузера не закроется.
@app.route('/add_to_cart', methods=["POST"])
def add_to_cart():
# session.permanent = True
product_id = request.form.get('product_id')
if session.get('ShoppingCart') is not None:
# flash(session.get('ShoppingCart'), 'success')
if product_id in session['ShoppingCart']:
flash(f'Item already existed in your shopping bag!', 'info')
return redirect(url_for('my_cart'))
else:
product = ProductItem.query.filter_by(product_id=product_id).first()
product_dict = {
'product_id': product_id,
'product_name': product.product_name,
'image_file': product.image_file,
'category': product.category,
'price': product.price,
'discount': product.discount,
'date_added_to_cart': datetime.utcnow(),
'count': 1}
session['ShoppingCart'][product_id] = product_dict
flash('Item added to your shopping bag!', 'success')
return redirect(request.referrer)
else:
session['ShoppingCart'] = {}
product = ProductItem.query.filter_by(product_id=product_id).first()
product_dict = {
'product_id': product_id,
'product_name': product.product_name,
'image_file': product.image_file,
'category': product.category,
'price': product.price,
'discount': product.discount,
'date_added_to_cart': datetime.utcnow(),
'count': 1}
session['ShoppingCart'][product_id] = product_dict
flash('Item added to your shopping bag!', 'success')
return redirect(request.referrer)
Я знаю, что это очень много, заранее спасибо.