簡體   English   中英

從會話中獲取數據[] Python, Flask

[英]Getting data from the session[] Python, Flask

我正在嘗試使用 Python 和框架 - Flask 為在線商店制作簡單的購物車系統。 我從 products.html 的表格中獲取數據,然后將其寫入 session。 我在獲取此數據並將其返回到購物車時遇到問題。html - 我得到的只是清晰的頁面,而不是我添加到購物車的產品名稱。

產品.html

    {% for el in products %}
        <p>Name {{ el.product_name }}</p>
        <p>Description {{ el.product_description }}</p>
        <p>Image </p> <img width="200" height="200" src="data:;base64,{{ el.product_img }}">
        <p>Cost: {{ el.product_cost }} тенге.</p>

        <form method="post" action="/cart">
            <input type="hidden" name="cart_prod_name" value="{{ el.product_name }}">
            <input type="submit" value="Add to cart">
        </form>
    {% endfor %}

Python function cart()

@app.route('/cart', methods=['POST', 'GET'])
def cart():
    if 'cart' not in session:
        session['cart'] = []

    if request.method == 'POST':
        cart_prod_name = request.form['cart_prod_name']
        session['cart'] += cart_prod_name
        return redirect('/cart')

    if request.method == 'GET':
        cart_products = session['cart']
        return render_template('cart.html', cart_products=cart_products)

購物車.html:

{% for cart_product in cart_products %}
    <p>{{ cart_product.order_prod_name }}</p>
{% endfor %}

來自flask.session文檔:

請注意,對可變結構的修改不會自動拾取,在這種情況下,您必須自己將屬性顯式設置為 True。

您的購物車架 object 是一個可變結構 == 列表,因此您必須在更改后進行設置

session.modified = True

我解決了這個問題。 正是我需要在cart_roducts和 output cart_product cart_product不要將它調用到 output order_prod_name

固定cart.html

{% for cart_product in cart_products %}
    <p>{{ cart_product }}</p>
{% endfor %}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM