qwe*_*ip9 29 html python flask
我是Flask的新手,我无法从select标签中获取值.我试过request.form['comp_select']返回一个错误的请求.但是,当我尝试使用时request.form.get('comp_select'),我的返回页面返回一个空白列表"[]".
我的HTML:
<form class="form-inline" action="{{ url_for('test') }}">
<div class="form-group">
<div class="input-group">
<span class="input-group-addon">Please select</span>
<select name="comp_select" class="selectpicker form-control">
{% for o in data %}
<option value="{{ o.name }}">{{ o.name }}</option>
{% endfor %}
</select>
</div>
<button type="submit" class="btn btn-default">Go</button>
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
我的app.py:
@app.route("/test" , methods=['GET', 'POST'])
def test():
select = request.form.get('comp_select')
return(str(select)) # just to see what select is
Run Code Online (Sandbox Code Playgroud)
如果我的帖子格式化已关闭(也是Stack Overflow的新功能),请提前抱歉.
Rob*_*obᵩ 32
很难从你提供的内容中确切知道,但我相信你需要添加method="POST"到你的<form>元素中.
来自对象的烧瓶文档request:
要访问表单数据(在POST或PUT请求中传输的数据),您可以使用表单属性....要访问URL中提交的参数(?key = value),您可以使用args属性.
因此,如果您通过POST提交表单,请使用request.form.get().如果您通过GET提交表格,请使用request.args.get().
此应用程序的行为符合您的要求:
flask_app.py:
#!/usr/bin/env python
from flask import Flask, flash, redirect, render_template, \
request, url_for
app = Flask(__name__)
@app.route('/')
def index():
return render_template(
'index.html',
data=[{'name':'red'}, {'name':'green'}, {'name':'blue'}])
@app.route("/test" , methods=['GET', 'POST'])
def test():
select = request.form.get('comp_select')
return(str(select)) # just to see what select is
if __name__=='__main__':
app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)
模板/ index.html的
<form class="form-inline" method="POST" action="{{ url_for('test') }}">
<div class="form-group">
<div class="input-group">
<span class="input-group-addon">Please select</span>
<select name="comp_select" class="selectpicker form-control">
{% for o in data %}
<option value="{{ o.name }}">{{ o.name }}</option>
{% endfor %}
</select>
</div>
<button type="submit" class="btn btn-default">Go</button>
</div>
</form>
Run Code Online (Sandbox Code Playgroud)