获取400,尝试上传文件广告时,将其他表单元素从html发送到flask。试图使用ajax,但这也会引发一个错误。
Python:
@app.route('/prod_diff_result', methods=['POST', 'GET'])
def prod_diff_result():
try:
host = request.form['host-prod-iterator']
print(host)
if request.files['file']:
f = request.files['file']
f.save(secure_filename(f.filename))
HTML:
<div class="main-div">
<form action="/prod_diff_result" method="POST" enctype="multipart/form-data">
<div class="grid-container">
<div class="grid-item">
<span class="label label-default ">PROD</span><br>
<p>Iterator Host : <input type="text" class="form-control" id="host-prod-iterator" value="10.47.7.57"
required></p>
<input type="radio" name="data_fetch_type" value="file" onclick="showfile()">Upload File
<input type="file" name="file" />
<input type="radio" name="data_fetch_type" value="db"> Get from DB
<input type="submit" />
</div>
</form>
</div>
我希望能够在一种请求中使用一种形式将主机名和文件发送回flask错误。
答案 0 :(得分:1)
它给出了一个错误,因为您尝试访问它找不到的表单字段,并认为该请求是不正确的,因为该请求不包含必需的表单字段。您正在尝试访问:
host = request.form['host-prod-iterator']
但是,您根本没有在HTML中给它命名。如果您给它一个name
,它应该可以工作:
<p>Iterator Host :
<input type="text" class="form-control" name="host-prod-iterator" id="host-prod-iterator" value="10.47.7.57" required>
</p>