1
私はFlaskで予測Webアプリケーションを構築しようとしています。アプリケーションは、ユーザーの入力を受け取り、pythonで訓練されたモデルを介して処理し、入力フォームの横にグラフとして結果を表示する必要があります。フォーム入力に基づいて既存のPython Flask Webページを更新するには?
は私のコードは次のようになります。
はHTMLフォーム:
<form class = "prediction-options" method = "post" action = "/prediction/results">
<!--the input fields-->
</form>
フラスコapp.py
@app.route("/")
def main():
return render_template('index.html')
@app.route("/prediction/results", methods = ['POST'])
def predict():
input_aqi = float(request.form['aqi'])/272
input_pm2_5 = float(request.form['pm2_5'])/224
input_pm10 = float(request.form['pm10'])/283
input_so2 = float(request.form['so2'])/36
input_no2 = float(request.form['no2'])/110
input_co = float(request.form['co'])/1.83
input_o3 = float(request.form['o3'])/124
input_list = [[input_aqi,input_pm2_5,input_pm10,input_so2,input_no2,input_co,input_o3]]
output_acute_bronchitis = model_acute_bronchitis.predict(input_list)
output_asthma = model_asthma.predict(input_list)
output_asthmatic_bronchitis = model_asthmatic_bronchitis.predict(input_list)
output_aurti = model_aurti.predict(input_list)
output_bronchitis = model_bronchitis.predict(input_list)
output_pneumonia = model_pneumonia.predict(input_list)
d = collections.OrderedDict()
d['acute_bronchitis'] = output_acute_bronchitis[0]
d['asthma'] = output_asthma[0]
d['asthmatic_bronchitis'] = output_asthmatic_bronchitis[0]
d['aurti'] = output_aurti[0]
d['bronchitis'] = output_bronchitis[0]
d['pneumonia'] = output_pneumonia[0]
prediction = jsonify(d)
return prediction
は今、私が管理しているユーザーに取ります予測結果を「/予測/結果」ページに入力してレンダリングします。どのように結果を '/'ページに表示させることができますか?私はこれを行うことを試みた:
@app.route("/", methods = ['POST','GET'])
def main():
if request.method == 'POST':
def predict():
#predict function that returns prediction
return render_template('index.html')
をしかし、私は常にsocket.error: [Errno 32] Broken pipe
エラーメッセージが表示されます。私は何をすべきか?