以下是确切的错误:
BadRequestKeyError werkzeug.exceptions.BadRequestKeyError: 400个坏请求:浏览器(或代理)发送了服务器无法理解的请求。KeyError:“ux”
下面是我正在运行的代码:
@app.route('/calculate_salary', methods=['POST', 'GET'])
def calculate():
# profession = int(request.form['profession'])
user_experience = request.form['ux']
languages = request.form['ul']
design_tools = request.form['designtoolz']
dob = request.form['dob']
fullname = request.form['fn']
age = request.form['age']
active_country = request.form['ac']
current_state = request.form['cs']
number_of_experience_years = request.form['ey']
is_developer = False
is_designer = False
# if int(profession) == 1:
# is_developer = True
#
# elif int(profession) == 2:
# is_designer = True
database = {
"ux": user_experience,
"languases": languages,
"Date of Birth": dob,
"fn": fullname,
"Active Country": active_country,
"Curret State": current_state,
"Number of Education Years": number_of_experience_years,
"design_tools": request.form.designtoolz
}
result_message = cc.calculate_expected_salarys(user_experience, database, number_of_experience_years,
is_developer, is_designer, languages,
request.form.designtoolz, dob, age, fullname, active_country, current_state)
return render_template(result_message)这是来自许多模块的代码示例,这些代码证明它存在html文档1:
<label>How many years experience do you have?</label><br>
<input name="ux" checked="checked" type="radio" value="1"/> Less than 1 year <br/>
<input name="ux" type="radio" value="2"/> 1-3 years <br/>
<input name="ux" type="radio" value="3"/> 3-8 years<br/>
<input name="ux" type="radio" value="4"/> 8+ years<br/>
<br/>如果是这样的话,request.form也会引用我的html代码模块吗?ux肯定在那里。
发布于 2022-05-28 21:04:25
在后端代码中,使用request.form访问表单对象,而在前端页面上没有表单。您需要在前端页面上提供一个实际的表单,并在其中添加您的输入字段。
因此,与其只是:
<input name="ux" checked="checked" type="radio" value="1"/> Less than 1 year <br/>
<input name="ux" type="radio" value="2"/> 1-3 years <br/>
<input name="ux" type="radio" value="3"/> 3-8 years<br/>
<input name="ux" type="radio" value="4"/> 8+ years<br/>你想要做的是:
<form method='post' action="{{ url_for('calculate') }}">
<input name="ux" checked="checked" type="radio" value="1"/> Less than 1 year <br/>
<input name="ux" type="radio" value="2"/> 1-3 years <br/>
<input name="ux" type="radio" value="3"/> 3-8 years<br/>
<input name="ux" type="radio" value="4"/> 8+ years<br/>
<input type='submit'> Submit
</form>https://stackoverflow.com/questions/72418967
复制相似问题