Как передать данные формы с одной страницы на другую с помощью FlaskApp

У меня есть форма "form.html", где пользователь может заполнить свою информацию, такую ​​как имя, адрес, номер мобильного телефона и изображение. и у меня есть три html-страницы "info.html", "success.html" и "fail.html"

Я запрашиваю оплату от пользователя, поэтому info.html покажет информацию, заполненную пользователем, и позже он выполнит платеж, если платеж будет успешным, пользователь будет перенаправлен на файл "success.html", а если платеж не удастся, пользователь будет перенаправлен на "fail.html"

все три страницы одинаковы, отличается только одна строка, то есть статус платежа "в ожидании" или "успех"

Я могу напечатать информацию, заполненную пользователем, в "info.html", но я хочу напечатать ту же информацию на success.html или fail.html, если это необходимо.

rout.py:

@app.route('/form', methods=['GET', 'POST'])
def form():
  global onlineAppForm, data
  onlineAppForm = RegForm()
  name = request.form['name'].strip()
  father = request.form['father_name'].strip()  
  mother = request.form['mother_name'].strip()
  address1 = request.form['txtAddress1'].strip()
  data = {'name' : name, 'father' : father, 'mother' : mother, 'address1' : address1}
  return render_template("apply1.html", data=data, form=onlineAppForm)

Я попытался сделать это, но, конечно, это не будет работать. так как я должен это сделать.

@app.route('/success')
def success():
  return render_template('success.html', data=data, form=onlineAppForm)

1 ответ

Решение

Вам нужно будет настроить базу данных с помощью SQLAlchemy и создать модель. Форма просто собирает данные, необходимые для создания модели. Вот пошаговое руководство.

  1. Форма отправлена ​​в конечную точку
  2. Создайте экземпляр модели и загрузите данные формы
  3. Сохранить в БД и перенаправить на страницу успеха (передать идентификатор объекта)
  4. запросить объект на успешном маршруте и передать в шаблон для рендеринга

Я написал пример, который, как я считаю, охватывает то, что вам нужно. Не хотелось писать шаблоны, но я уверен, что это должно сработать.

http://hastebin.com/puputugune.py

также проверьте https://flask-wtf.readthedocs.io/en/latest/ для получения дополнительной помощи

РЕДАКТИРОВАТЬ

в шаблоне вы можете получить доступ к атрибутам вашей модели так же, как и в представлении.

<!-- success.html -->
<ul>
    <li>{{ person.id }}</li>
    <li>{{ person.first_name }}</li>
    <li>{{ person.last_name }}</li>
    <li>{{ person.email }}</li>
</ul>
Другие вопросы по тегам