#python #flask #cart #webshop
#python #flask #Корзина #интернет-магазин
Вопрос:
Я создаю интернет-магазин с использованием Flask. На данный момент я пытаюсь отобразить сообщение, когда корзина пуста. Мне уже удалось отобразить сообщение, когда количество товара, равное 0, добавляется в корзину, используя if-тест. Но я не могу отобразить сообщение, когда в корзину не добавляется количество товара (жирный фрагмент кода (между *) — это место, где появляется сообщение об ошибке)).
Это моя функция маршрута в Python:
@app.route('/cart', methods=['GET', 'POST'])
def cart():
product_id = session['product_id']
product = my_products[product_id]
totalprice = int(session['amount']) * product['price']
return render_template('cart.html', product=product, totalprice=totalprice)
Это мой html-файл корзины (cart.html ):
{% if session['amount'] == '0' or **product_id == None** %}
<p>You have no products in your cart.</p>
<div id="place_order">
<button id='btnalert' disabled>place order</button>
</div>
{% else %}
<p>You have in your cart:</p>
<p>Product: {{product['name']}}</p>
<p>Price: {{product['price']}}</p>
<p>Amount: {{session['amount']}}</p>
<p id="totalprice">TOTAL PRICE: {{totalprice}}</p>
<div id="place_order">
<button id='btnalert'>place order</button>
<script>
btnAlert = document.querySelector('#btnalert')
function showAlert() {
alert('Sorry, this shop is out of business!')
}
btnAlert.addEventListener("click", showAlert)
</script>
</div>
{% endif %}
Заранее благодарю вас!
Комментарии:
1. Не могли бы вы поделиться тем, что говорится в сообщении об ошибке?
2. Он просто выдает внутреннюю ошибку сервера 500, в которой говорится: «Сервер обнаружил внутреннюю ошибку и не смог выполнить ваш запрос. Либо сервер перегружен, либо в приложении ошибка. » Когда я смотрю в терминал, он говорит «KeyError: ‘product_id'»
Ответ №1:
Что, если вы также передадите product_id в качестве переменной.
попробуйте это :
вернуть render_template(‘cart.html ‘, product=product, product_id=product_id , totalprice=totalprice)
и измените эту строку:
{%, если session[‘amount’] == ‘0’ или {{product_id}} == Нет %}
Комментарии:
1. Спасибо за предложение! К сожалению, я все еще получаю ту же ошибку :/
2. разве None не должен быть str (‘None’) ?