是否有任何方法可以从
sessions
模板中管理(添加和删除)Jinja
,而不与任何类型的 API
或页面重新加载交互?
我正在为商店网站制作
cart function
,我想将商品存储为:
session['cart'][str(item.id)] = [item.name, item.item_type, item.id]
这是
dictionary
内部的 session
,存储 list
的三个值,我可以使用 访问它
{{ session.cart[item.id|string] }}
在后端很容易,但我想知道我是否可以在内部完成它
Jinja template
,就像这样:
{% set session.cart[item.id|string] = [item.name, item.item_type, item.id] %}
可能吗?
更不用说我想将它与
javascript event listener
一起使用
如果不可能,请告诉我从会话中到达
add
和 remove
以及 update
中的购物车长度(不带任何 navbar
或 reload
)的最佳方式是什么。我最初的算法是创建一个其余 API 路由,如上所述,该路由可以从购物车会话中添加和删除,但我无法使其工作,这是购物车路由代码:
refresh
当我仅使用 API 并发送以下请求时,它将返回一个
@app.route('/cart/api')
def cart_api():
data = flask.request.args
data = [data['nm'], data['typ'], data['id']]
if flask.request.args.get('act') == '1':
flask.session['cart'][data[2]] = data
return f"{data[0]} added to cart successfuly."
else:
flask.session['cart'].remove(data[2])
return f"{data[0]} was not found in session.", 404
并表示
200 status code
,但我的网站上的 item added to cart
上没有 update
main page
Delfi(在评论部分)您可以使用JavaScript(AJAX)调用您的端点并更新您的 无需重新加载页面即可加入购物车。
[获取 API][https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch] 让您可以选择执行此操作。