Создание корзины покупок с использованием flask - PullRequest
0 голосов
/ 24 апреля 2020

Я создаю сайт электронной коммерции, используя flask. Я использую базу данных SQLite с Flask -SQLalchemy. В основном мне нужны две функции: -

  1. Каждый раз, когда пользователь посещает веб-сайт в первый раз, он сможет добавлять товары в корзину без входа в систему.

  2. Когда пользователь, упомянутый в 1-м пункте, покидает сайт без входа в систему, элементы корзины должны быть сохранены.

  3. В следующий раз, когда пользователь, упомянутый в пункте 2ns, повторно посещает веб-сайт, он должен сохраненные элементы корзины без входа в систему.

  4. Если пользователь входит на веб-сайт, его элементы корзины должны быть добавлены в корзину учетной записи.

  5. Данные корзины не должны удаляться при закрытии окна браузера.

  6. Еще одна вещь, я хочу связать данные корзины, которые я хранится в сеансе с пользователем, который входит в систему после первого добавления элементов корзины.

необходимо ли сохранять элементы корзины в базе данных?

Я пытался реализовать это корзина покупок с помощью сессий, но всякий раз, когда я закрываю окно браузера, я теряю все данные.

Вот мой код. С помощью этого кода я могу хранить элементы корзины до тех пор, пока окно браузера не закроется.


@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)


Я знаю, что это очень много, заранее спасибо.

...