@hey_umbrella

Как передать id через html в flask?

Вопрос скорее всего очень тупой)
cursor = con.execute(f"SELECT name,age,imagepath,gender,phone,timeadded,id,description,city FROM pets WHERE userid = '{current_user.id}' ")

В flask я передаю вот эти данные из бд,а потом в html их показываю.
{% for item in items %}
      <div class="card card-item-01">
      <div class="card__image-wrapper">
      <img class="card__image" src="/static{{item[2]}}" alt="Desert" width="280" height="420">
      </div>
      <form method = "POST">
        <div class="card__content">
          <input type="text" placeholder="{{item[3]}}" name="gender">
          <input type="text" placeholder="{{item[0]}}" name="name">
          <input type="text" placeholder="{{item[1]}}" name="age">
          <input type="text" placeholder="{{item[7]}}" name="desc">
          <input type="text" placeholder="{{item[8]}}" name="city">
          <input type="text" placeholder="{{item[4]}}" name="phone">
          <input type="file" placeholder="" name="imagepath">
          <input type="submit" name="id" value="Сохранить">
        </div>  
      </form>
    </div>
    {% endfor %}


Я вывожу все эти данные,но как мне передать id обьекта,потому что у каждой строки в бд,есть id и я его передаю,после человек изменяет данные,как мне передать id обратно в flask,потому что по-другому я не могу сделать SELECT именно к этой строке,надеюсь понятно обьяснил,заранее спасибо!
  • Вопрос задан
  • 309 просмотров
Пригласить эксперта
Ответы на вопрос 1
Hrafnir
@Hrafnir
Тебе нужно добавить в форму страницу, для которой ты напишешь эндпоинт, например:
<form method="POST" action="{{ url_for('main.post_id') }}" >

Не забыв при этом отправить в html шаблон объект своей формы, аля form=Form()
В самой вьюхе тебе надо получить это значение:
@main.post_id('/id')
   def post_id():
        form = Form()
        ....
        return render_template('template.html', form=form)


и уже вертеть ее атрибутами
Вообщем стоит почитать документацию в WTForms
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы