#python #flask
#python #flask
Вопрос:
Я пытаюсь выполнить метод добавления в корзину, используя flask и sqlalchemy. Я получаю сообщение об ошибке 405, в котором говорится, что метод не разрешен, и, кроме того, не думаю, что метод работает, поскольку я не уверен, как получить идентификатор продукта со страницы продукта при нажатии кнопки в метод добавления в корзину. Вот мой views.py
@app.route("/index", methods=['GET','POST'])
def addToCart():
productID = int(request.form.get("productID"))
isInCart = Cart.query.get(productID)
userID = session['userID']
if isInCart is None:
c = Cart(userID=userID, productID=productID, quantity="1")
db.session.add(c)
db.session.commit()
else:
q = Cart.query.filter_by(userID=userID, productID=productID).first()
oldQ = q.Quantity
newQuantity = Cart.query.filter_by(userID=userID, productID=productID).update(dict(quantity= oldQ 1))
db.session.commit()
return render_template("index.html" )
и вот мой html, который я использую
<form class="form" action="" method="post">
<input type="submit" value="Add to Cart"/>
</form>
Пожалуйста, помогите, он не работает, я использую базу данных корзины и базу данных продуктов. Если есть какие-либо предложения о том, как я могу заставить код работать, пожалуйста, помогите
Ответ №1:
установите действие равным ‘/index’ в вашем html-коде
<form class="form" action="/index" method="post">
<input type="submit" value="Add to Cart"/>
</form>
Ответ №2:
В вашей форме отсутствует адрес действия. Согласно ответу сохама саоджи, добавление «/ index» к вашему действию должно исправить это, но, возможно, было бы лучше использовать «url_for», чтобы он работал за пределами среды разработки.
<form class="form" action="{{ url_for('addToCart') }}" method="post">
<input type="submit" value="Add to Cart"/>
</form>