【发布时间】:2021-09-10 16:16:53
【问题描述】:
我有一种情况,我需要使用单个 API 请求将图像和 json 数据发布到数据库。当我尝试发布没有图像的请求时,它工作正常。当我尝试将图像和 json 添加在一起时,它会引发错误,就像我使用邮递员发送请求时一样。
任何人都可以建议解决此问题的最佳方法吗?
werkzeug.exceptions.BadRequestKeyError: 400 Bad Request: The browser (or proxy) sent a request that this server could not understand.
KeyError: 'file
服务器
@app.route("/testresult", methods=["POST"])
def testresult():
if request.method == "POST":
file = request.files['file']
traynumber = request.json['traynumber']
sample_number = request.json["sample_number"]
test_started = request.json['test_started']
test_ended= request.json['test_ended']
resultstatus = request.json['resultstatus']
traydetails = Traydetails.query.filter(Traydetails.traynumber ==traynumber).first_or_404()
trayid = traydetails.id
sampleimage = file.read()
add_sampleresult = Sampletestresult(trayid,sample_number,test_started,test_ended,resultstatus,sampleimage)
db.session.add(add_sampleresult)
db.session.commit()
return file.filename
客户:
import requests
url = 'http://localhost:5000/testresult'
ig = r'C:\Users\Admin\Pictures\test\cat.jpg'
files = {'file': open(ig, 'rb')}
payload = {"traynumber":"868032cd60444cfca6558ce575c13c0a_1","sample_number":1,"test_started":"2021-06-24 15:30:20","test_ended": "2021-06-24 16:30:20","resultstatus": 1}
value = requests.post(url,files=files,json=payload,verify=False,)
print(value.content)
【问题讨论】:
标签: python postgresql flask postman flask-sqlalchemy