Я создал следующее простое флеш-приложение, которое отображает предсказанное значение из модели машинного обучения, и оно отображает index.html по мере необходимости, пока не сделаю json.request. Затем я получаю ошибку 400; вот мой код:
работает по необходимости из командной строки, но для отображения прогноза (-ов) в браузере. Может ли кто-нибудь дать мне быструю отправную точку? Вот мой код:
@app.route('/predict',methods=['POST'])
def predict():
data = request.get_json(force=True)
predict = [data["session"],data["time"],data["amount"]]
predict = np.array(predict)
predict = predict_request.reshape(1,-1)
#make prediction
with graph.as_default():
area = keras_model_loaded.predict(predict)
output = [area[0]]
return render_template('index.html', output = output)
if __name__ == "__main__":
# Choose the port
port = int(os.environ.get('PORT', 9000))
# Run locally
app.run(host='127.0.0.1', port=port)
Вот как я создаю JSON:
response = rq.get('https:xyz')
data=response.json()
session = data['currently']['session']
time = data['currently']['time']
amount = data['currently']['amount']
url= "http://127.0.0.1:9000/predict"
post_data = json.dumps({'session': session, 'time': time, 'amount': amount})
r = rq.post(url,post_data)
Данные JSON, похоже, не доходят до сервера, как ожидалось. Пожалуйста, попробуйте обновить код своих запросов:
post_data = {'session': session, 'time': time, 'amount': amount}
r = rq.post(url, json=post_data)
Из официальных запросов python-docs:
Использование параметра json в запросе изменит Content-Type в заголовке на application/json.