在Flask中迭代request.form仍然只有一个结果,Python
我有这样一个视图:
def admin():
f = file('config.py', 'r').read()
c = f.split('\n')
confs = [e for e in c if e.strip()]
conf_dict = {}
for conf in confs:
p = conf.split('=')
conf_dict[p[0]] = p[1].strip("'")
val = [value for key,value in conf_dict.iteritems()]
opval = not val
if request.method == 'POST':
name = request.form
for v in request.form:
return "%s : %s" % (v,request.form[v])
return render_template('admin.html', opval = opval, conf = conf_dict)
这是它的HTML部分,里面有一个表单:
<h2>Configuration Page</h2>
<form method="post">
<hr>
<b>Server</b>
</br>
</br>
{% for key,value in conf.iteritems() %}
{% if (value == 'True') %}
{{ key.replace('_', ' ').capitalize() }} :
<input type="checkbox" value ='True' name='check' checked>
{{ value }}</input>
{% elif (value == 'False') %}
{{ key.replace('_', ' ').capitalize() }} :
<input type="checkbox" value ='False' name='check'>
{{ value }}</input>
{% else %}
</br>
</br>
{{ key.replace('_', ' ').capitalize() }} :
<input type=text name={{ key.replace('_', ' ').lower() }}
value={{value}}>
{% endif %}
{% endfor %}
<hr>
</br>
</br>
<input type="submit" value="Save" />
</form>
我想要获取的是所有输入框中name字段的值,但我只得到了这个secret : changethiskey
。
即使是普通的字典,只要放在POST执行流程中,也会出现这个问题。
1 个回答
0
你在for循环里使用了return,这样的话循环会在第一次取到值的时候就结束了。