На моем сайте не работает система поиска товаров. Работаю на Python Flask HTML

Рейтинг: 1Ответов: 0Опубликовано: 27.01.2023

Вот код из main.py:

@app.route('/products/', methods=['GET', 'POST'])
@login_required
def products():
    global poisk
    korzina = []
    if request.method == 'POST':
        item_id = request.form['item_id']
        row = db.cart.get('item_id', item_id)
        if not row:
            data = {'item_id':item_id, 'amount':1}
            db.cart.put(data)
        else:
            data = {'item_id':item_id, 'amount':row.amount+1}
            db.cart.delete('item_id', item_id)
            db.cart.put(data)
        data = db.items.get_all()
        poisk = request.form['poisk']
        return render_template('products.html', data=data, korzina=korzina, poisk=poisk)    
    data = db.items.get_all()
    for row1 in data:
        res = db.cart.get('item_id', row1.id)
        if res:
            row1.amount = res.amount
            korzina.append(str(row1.amount))
        else:
            row1.amount = 0
            korzina.append(str(row1.amount))
    return render_template('products.html', data=data, korzina=korzina)

Когда заходишь на страницу с продуктами, появляется ошибка:

TypeError: 'in <string>' requires string as left operand, not Undefined

Порой, когда что то в коде меняю, ошибка меняется на Bad Request. Вот код из HTML:

{% extends 'index.html' %}
{% block head %}
    <link rel="stylesheet" href= "../static/css/products.css">
    <title>Продукты</title>
{% endblock %}
{% block content %}
<form action="/products"  method='POST'>
  <input type="text" placeholder="Введите название товара" name='poisk'>
  <button type="submit">Найти!</button>
</form>  
<table>
  <tr>
    <th>Наименование</th>
    <th>Описание</th>
    <th>Цена</th>
    <th>Фото</th>
    <th></th>
  </tr>
 
{% if poisk == '' %}  
 {% for row in data %}
 <form action="/products"  method='POST'>
  <tr>
    <input type="hidden" value="{{row.id}}" name='item_id'>
    <td>{{row.name}}</td>
    <td>{{row.description}}</td>
    <td>{{row.price}} руб</td>
    <td><img src="../static/images/{{row.image}}"  width="120" height="90" /></td>
    <td><button type="submit">В корзину</button><br>В корзине: {{korzina[row.id - 1]}}</td>
  </tr>
  </form>
  {% endfor %}  
{% endif %}  

{% if poisk != '' %}  
 {% for row in data %}
   {% if poisk in row.name %} 
     <form action="/products"  method='POST'>
      <tr>
        <input type="hidden" value="{{row.id}}" name='item_id'>
        <td>{{row.name}}</td>
        <td>{{row.description}}</td>
        <td>{{row.price}} руб</td>
        <td><img src="../static/images/{{row.image}}"  width="120" height="90" /></td>
        <td><button type="submit">В корзину</button><br>В корзине: {{korzina[row.id - 1]}}</td>
      </tr>
      </form>
   {% endif %}    
 {% endfor %}  
{% endif %}  
 
</table>
<div class='footer_mnogo_contenta'>
    <span style="font-size: 15pt;">Тех.поддержка: <br>
    Почта: почта <br>
    Telegram: Телефон <br>
    Номер телефона: телефон<span>
</div>
{% endblock %}

Уже просто не знаю что делать. Помогите пожалуйста! Вот база данных с товарами:

база данных

Ответы

Ответов пока нет.