Мне нужно получить данные из 2 разных форм. Первый рендер "index.html" берет выбранную пользователем опцию и сохраняет ее в переменной "item".
на "page2.html", значение "item" здесь показано просто отлично. И снова, пользователь вводит некоторые новые данные в поле ввода текста, а затем перенаправляется на следующий рендеринг, «page3.html»
на "page3.html", предполагается, что оба данные из форм на "index.html" и "page2.html" должны отображаться, но я получаю "None", когда пытаюсь показать значение "item" , Зачем?
Я пытался сделать это на отдельных маршрутах app.route (), но я также получил значение типа None.
файл app.py:
from flask import Flask, render_template, request
app = Flask(__name__)
@app.route("/", methods=['GET', 'POST'])
def index():
if request.method == 'POST':
if request.form.get('send') == 'send':
item = str(request.form.get('test1'))
return render_template('page2.html', item=item)
if request.form.get('send2') == 'send2':
item = str(request.form.get('test1'))
text = request.form.get('textbox')
return render_template('page3.html', item=item, text=text)
else:
return render_template('index.html')
app.run(debug=True)
файл index.html:
<div align="center">
<form method="POST" action="{{ url_for('index') }}">
<select name="test1">
<option name="1" value="1">1</option>
<option name="2" value="2">2</option>
<option name="3" value="3">3</option>
</select>
<button type="submit" name="send" value="send">Send</button>
</form>
</div>
файл page2.html:
<div align="center">
<form method="POST" action="{{ url_for('index') }}">
<h2>Previous selection: {{ item }}</h2><br>
<input type="text" name="textbox" value="Enter text">
<button type="submit" name="send2" value="send2">Send</button>
</form>
</div>
и файл page3.html:
<div align="center">
<h2>Your result is:</h2><br>
<h2>"{{ text }}" and "{{ item }}" </h2>
</div>