我需要从2种不同的形式获取数据。第一个“ index.html”呈现采用用户选择的选项,并将其存储在变量“ item”上。
在“ page2.html”上,此处显示“ item”值就可以了。再次,用户在文本框输入中输入一些新数据,然后将其重定向到下一个呈现“ page3.html”
在“ page3.html”上,应该显示“ index.html”和“ page2.html”上的表单中的数据,但是当我尝试显示“ item”值时却显示“ None” 。为什么?
我尝试在单独的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>
答案 0 :(得分:1)
将项目的值存储在会话中,以便以后可以访问它。完成后,您可以清除会话,例如session.pop("session_name", None)
if request.form.get('send') == 'send':
item = str(request.form.get('test1'))
session["test1"]=item
return render_template('page2.html', item=item)
if request.form.get('send2') == 'send2':
item = session.get("test1")
text = request.form.get('textbox')
return render_template('page3.html', item=item, text=text)