带有标签的td元素太多了,我想知道用户单击了哪个元素,我想从html传递到后端,并在后端对用户的选择进行处理;
这是我的html;
<a href="/selected" ????><td>{{ options1 }}</td></a>
<a href="/selected"><td>{{ options2 }}</td></a>
<a href="/selected"><td>{{ options3 }}</td></a>
<a href="/selected"><td>{{ options4 }}</td></a>
<a href="/selected"><td>{{ options5 }}</td></a>
<a href="/selected"><td>{{ options6 }}</td></a>
当用户单击一个时,我想将其发送到后端;
@app.route('/selected', methods=['GET', 'POST'])
def selected():
selected_option = request.args.get('????')
return render_template("selected.html", selected_option=selected_option)
我如何填写问号?
答案 0 :(得分:0)
为options1
,options2
等设置单独的变量可能由于以下几个原因而麻烦:
您可能希望在字典中定义选项:
sections = {'first-option': 'I am the first option',
'second-option': 'Click me for fun and profit',
'third-option': 'All flights have been cancelled',
}
如果您跨过链接栏,请点击生成链接栏的页面上的
return render_template('some_page.html', SECTIONS=sections)
然后您可以执行以下操作:
{% for key, value in SECTIONS.items() %}
<a href="{{url_for('selected', section=key)}}">{{value}}</a>
{% endfor %}
这将自动生成与以下视图功能兼容的正确URL:
@app.route('/selected/<section>')
def selected(section):
# Assuming the first URL:
print (section) # 'first-option'
print (sections[section]) # 'I am the first option'
return render_template("selected.html", selected_option=section)
您可能还希望看看this gist,它将使概念更进一步。
这还使用上下文处理器将SECTIONS
变量插入所有页面,而不是将其传递给各个render_template
函数。