Python 如何使用HTML表单用产品ID更新购物车?
我正在用Python、Flask和SQLAlchemy构建一个电子商务网站,并试图更新用户购物车上的产品数量。我可以轻松地检索产品数量(打印在命令行上),但无法获取产品ID(最终需要更新SQL购物车表)。在购物车页面上,数量和产品ID均正确显示Python 如何使用HTML表单用产品ID更新购物车?,python,html,jinja2,flask-sqlalchemy,Python,Html,Jinja2,Flask Sqlalchemy,我正在用Python、Flask和SQLAlchemy构建一个电子商务网站,并试图更新用户购物车上的产品数量。我可以轻松地检索产品数量(打印在命令行上),但无法获取产品ID(最终需要更新SQL购物车表)。在购物车页面上,数量和产品ID均正确显示 class Products(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100), nullable=False)
class Products(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100), nullable=False)
price = db.Column(db.Integer, nullable=False)
@app.route("/cart", methods=["GET", "POST"])
@login_required
def cart():
cart = Products.query.join(Cart).filter_by(buyer=current_user).all()
if request.method == "POST":
qty = request.form.get("qty")
idpd = request.form.get("idpd")
print("qty",qty)
print("id",idpd)
{% for item in cart %}
<span>
{{item.name}}
</span>
<div>
${{item.price}}
</div>
<form action="{{ url_for('cart') }}" method="post">
<div class="form-group">
<p name="idpd">{{item.id}}</p>
<select class="form-control" name="qty">
<option disabled="Quantity">Qty</option>
<option>1</option>
<option>2</option>
<option>3</option>
</select>
<button type="submit">
Update
</button>
{% endfor %}
类产品(db.Model):
id=db.Column(db.Integer,主键=True)
name=db.Column(db.String(100),null=False)
price=db.Column(db.Integer,nullable=False)
@app.route(“/cart”,方法=[“GET”,“POST”])
@需要登录
def cart():
购物车=产品。查询。加入(购物车)。筛选依据(买家=当前用户)。全部()
如果request.method==“POST”:
数量=申请表获取(“数量”)
idpd=request.form.get(“idpd”)
打印(“数量”,数量)
打印(“id”,idpd)
{购物车%中的商品为%1}
{{item.name}
${{item.price}
{{item.id}
数量
1.
2.
3.
更新
{%endfor%}
当我为产品id 1的数量选择选项2并单击更新时,我期望数量2和id 1的输出,但实际输出为:
数量2
id无您需要
<p name="idpd">{{item.id}}</p>
{{item.id}
到
<input name="idpd" value="{{item.id}}" hidden>