1

我看过很少有关于这个错误的帖子,但没有一个对我的案子有帮助。索引.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">
4

0 回答 0