我看过很少有关于这个错误的帖子,但没有一个对我的案子有帮助。索引.html
<p><input type="number" step="0.01" name="data_split" value="0.2">DATA_SPLIT</p>
<select name="kusy" id="" >
<option value="gini" selected= "{{ val2 == 'gini' }}">Gini</option>
<option value="entropy" selected= "{{ val2 == 'entropy' }}">Entropy</option>
</select>
主文件
if request.method == 'POST':
if (len(request.form['data_split']) > 0):
text = request.form['data_split']
train_test_data_split = float(text)
else:
train_test_data_split = 0.2
else:
train_test_data_split = 0.2
if request.method == 'POST':
if (len(request.form['kusy']) > 0):
text = request.form['kusy']
criterion = text
else:
criterion = 'gini'
else:
criterion = 'gini'
错误信息
werkzeug.exceptions.BadRequestKeyError:400 错误请求:浏览器(或代理)发送了此服务器无法理解的请求。键错误:'kusy'
这种形式的问题在于,它只有在我有其中一种输入类型时才有效,例如
- 2 个类型号的输入将起作用
- 选择类型的 2 个输入将起作用
- 1个输入类型号和1个输入类型select会抛出错误
我已经完成的故障排除:
- 试图将 request.form 更改为 request.form.get,但我遇到了更多错误 -> 如果这是最快的解决方案,我愿意再试一次
- 确保 HTML 名称中的所有值都没有拼写错误
如果可能的话,我正在寻找快速解决方案。
那是存在的唯一形式。
<form method="post">
<p><input type="number" step="0.01" name="data_split" value="0.2">DATA_SPLIT</p>
<select name="kusy" >
<option value="gini" selected= "{{ val2 == 'gini' }}">Gini</option>
<option value="entropy" selected= "{{ val2 == 'entropy' }}">Entropy</option>
</select>
<select name="output_column" >
<option value="Pclass" selected= "{{ val3 == 'Pclass' }}">Pclass</option>
<option value="Sex" selected= "{{ val3 == 'Sex' }}">Sex</option>
<option value="Age" selected= "{{ val3 == 'Age' }}">Age</option>
<option value="Parch" selected= "{{ val3 == 'Parch' }}">Parch</option>
<option value="Embarked" selected= "{{ val3 == 'Embarked' }}">Embarked</option>
<option value="Title" selected= "{{ val3 == 'Title' }}">Title</option>
<option value="FareBand" selected= "{{ val3 == 'FareBand' }}">FareBand</option>
</select>
<select name="splitting" >
<option value="best" selected= "{{ val4 == 'best' }}">Best</option>
<option value="random" selected= "{{ val4 == 'random' }}">Random</option>
</select>
<p><input type="text" name="work" min="1" max="8" value="3">MAX_Depth</p>
<input type="submit">