我有一个在线商店,该商店使用本地存储来跟踪购物车中有哪些产品(存储方式为AttributeError: 'numpy.int64' object has no attribute 'iloc'
)。当用户导航到cart.html时,我想将cart = [{"id":"1"},{"id":"2"},{"id":"4"}]
发送到我的后端,生成产品的完整列表,然后在cart
调用中使用该列表。
后端可以正常接收return render_template
,并且可以毫无问题地生成列表,但是我无法将列表发送到cart.html页面(好像cart
为空) 。 POST请求是否应该不在cart.html上,而是通过重定向解决它?如果是这样,我该怎么做?我希望避免在cart.html上出现“加载购物车”按钮。
这是cart.html的开头(我曾尝试将ajax调用设置为async:false,但它没有阻止没有cart
的页面的呈现:
cart
这是我的路线:
{% extends "layout.html" %}
{% block content %}
<script type="text/javascript">
function sendCart() {
$(document).ready(function() {
$.ajax({
url: "{{ url_for('cart', _external=True) }}",
type: 'POST',
data: JSON.stringify(JSON.parse(localStorage.getItem("cart"))),
contentType: "application/json; charset=utf-8",
dataType: "json",
});
})
}
sendCart();
</script>
...
我发现使用ajax和localstorage可以更轻松地跳过,而使用后端易于访问的cookie:不需要请求,我可以在呈现页面之前生成@app.route('/cart', methods=['GET', 'POST'])
@login_required
def cart():
cart = []
if request.method == 'POST':
for i in request.json:
cart.append(get_Furniture(int(i['id'])))
return render_template("cart.html", cart_objects = cart)
return render_template("cart.html", cart_objects = cart)
。
答案 0 :(得分:0)
我发现使用ajax和localstorage可以更轻松地跳过,而使用后端易于访问的cookie:不需要请求,我可以在呈现页面之前生成购物车。