我正在创建一个页面,其中包含由jinja for循环创建的列表。 我希望用户选择该列表中的项目。 我希望该选择将用户发送到该项目页面,并将所选项目发送回我的python代码以进行进一步处理。
在我的“home.html”页面中,我有以下内容:
{% for item in list %}
{{ item }}
<form method='POST'>
<input type='submit' value='select'>
</form>
{% endfor %}
然后在我的python视图中:
@app.route('/', methods=['GET','POST'])
def home():
list = ['a','b','c']
#???????????????????????????????????????????????
selected = request.form.item
return render_template('home.html', list=list)
答案 0 :(得分:1)
您需要在GET
路线中单独处理POST
和home()
方法。像这样:
@app.route('/', methods=['GET','POST'])
def home():
if request.method == 'POST':
selected = request.form.item
# on this line you can process the selected item, but you haven't
# stated how you'll do that, so I don't know what to display here
return redirect(url_for('item_page.html', item=selected))
else:
list = ['a','b','c']
return render_template('home.html', list=list)
显然,我还假设您有一个模板item_page.html,用于显示用户选择的单个项目。如果没有,请替换您将在那里使用的任何模板。您还需要@app.route
来处理该模板。