我正在尝试使用flask和sqlalchemy添加到购物车的方法。我收到一个405错误,说该方法是不允许的,另外,我认为该方法不起作用,因为我不确定当单击按钮时,如何从产品页面获取productID到add to cart方法。这是我的观点
@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>
请帮助它不工作,我使用的是购物车数据库和产品数据库。如果有任何关于如何让代码工作的建议,请帮助
您的表单缺少操作地址。根据soham saoji的回复,在您的操作中添加“/index”应该可以解决这个问题,但最好使用“url\u for”,这样它就可以在开发环境之外工作
将动作设置为html代码中的“/index”