如何解决如何使用 Python 和 FLASK 修复错误 405?
我正在尝试做一个烧瓶项目,但我遇到了问题.. 我的想法是使用不同的机器学习模型(朴素贝叶斯、线性回归和支持向量机)预测一种玻璃。
这是我的 app.py 文件:
create
这是我的 index.html 文件:
# -*- coding: utf-8 -*-
"""
@author: fred_
"""
import numpy as np
from flask import Flask,request,render_template
import pickle
app = Flask(__name__)
nb = pickle.load(open('naive_bayes_model.sav','rb'))
lr = pickle.load(open('logistic_regression_model.sav','rb'))
svm = pickle.load(open('svm_model.sav','rb'))
@app.route('/index')
def home():
return render_template('index.html')
@app.route('/indexRL')
def lr():
return render_template('indexRL.html')
@app.route('/indexSVM')
def svm():
return render_template('indexSVM.html')
@app.route('/predict_nb',methods=['GET','POST'])
def predict_nb():
RI = request.form['inputRI']
Na = request.form['inputNa']
Mg = request.form['inputMg']
Al = request.form['inputAl']
Si = request.form['inputSi']
K = request.form['inputK']
Ca = request.form['inputCa']
Ba = request.form['inputBa']
Fe = request.form['inputFe']
novo_registro = [[RI,Na,Mg,Al,Si,K,Ca,Ba,Fe]]
novo_registro = np.asarray(novo_registro)
# novo_registro = novo_registro.reshape(-1,1)
# novo_registro = novo_registro.reshape(-1,9)
resposta_nb = nb.predict(novo_registro)
if resposta_nb == 1:
return render_template('index.html',prediction_text_nb ='Resultado: Vidro Processado para Construções')
elif resposta_nb == 2:
return render_template('index.html',prediction_text_nb ='Resultado: Vidro Não-Processado para Construções')
elif resposta_nb == 3:
return render_template('index.html',prediction_text_nb ='Resultado: Vidro Processado para Veículos')
elif resposta_nb == 4:
return render_template('index.html',prediction_text_nb ='Resultado: Vidro Não-Processado para Veículos')
elif resposta_nb == 5:
return render_template('index.html',prediction_text_nb ='Resultado: Vidro para potes')
elif resposta_nb == 6:
return render_template('index.html',prediction_text_nb ='Resultado: Vidro para Louças')
elif resposta_nb == 7:
return render_template('index.html',prediction_text_nb ='Resultado: Vidro para Faróis de Carros')
else:
return render_template('index.html',prediction_text_nb ='Resultado: ')
@app.route('/predict_rl','POST'])
def predict_rl():
RI = request.form['inputRI']
Na = request.form['inputNa']
Mg = request.form['inputMg']
Al = request.form['inputAl']
Si = request.form['inputSi']
K = request.form['inputK']
Ca = request.form['inputCa']
Ba = request.form['inputBa']
Fe = request.form['inputFe']
novo_registro = [[RI,Fe]]
novo_registro = np.asarray(novo_registro)
novo_registro = novo_registro.reshape(-1,1)
novo_registro = novo_registro.reshape(-1,9)
resposta_rl = lr.predict(novo_registro)
if resposta_rl == 1:
return render_template('indexRL.html',prediction_text_rl ='Resultado: Vidro Processado para Construções')
elif resposta_rl == 2:
return render_template('indexRL.html',prediction_text_rl ='Resultado: Vidro Não-Processado para Construções')
elif resposta_rl == 3:
return render_template('indexRL.html',prediction_text_rl ='Resultado: Vidro Processado para Veículos')
elif resposta_rl == 4:
return render_template('indexRL.html',prediction_text_rl ='Resultado: Vidro Não-Processado para Veículos')
elif resposta_rl == 5:
return render_template('indexRL.html',prediction_text_rl ='Resultado: Vidro para potes')
elif resposta_rl == 6:
return render_template('indexRL.html',prediction_text_rl ='Resultado: Vidro para Louças')
elif resposta_rl == 7:
return render_template('indexRL.html',prediction_text_rl ='Resultado: Vidro para Faróis de Carros')
else:
return render_template('indexRL.html',prediction_text_rl ='Resultado: ')
@app.route('/predict_svm','POST'])
def predict_svm():
RI = request.form['inputRI']
Na = request.form['inputNa']
Mg = request.form['inputMg']
Al = request.form['inputAl']
Si = request.form['inputSi']
K = request.form['inputK']
Ca = request.form['inputCa']
Ba = request.form['inputBa']
Fe = request.form['inputFe']
novo_registro = [[RI,Fe]]
novo_registro = np.asarray(novo_registro)
# novo_registro = novo_registro.reshape(-1,1)
# novo_registro = novo_registro.reshape(-1,9)
resposta_svm = svm.predict(novo_registro)
if resposta_svm == 1:
return render_template('indexSVM.html',prediction_text_svm ='Resultado: Vidro Processado para Construções')
elif resposta_svm == 2:
return render_template('indexSVM.html',prediction_text_svm ='Resultado: Vidro Não-Processado para Construções')
elif resposta_svm == 3:
return render_template('indexSVM.html',prediction_text_svm ='Resultado: Vidro Processado para Veículos')
elif resposta_svm == 4:
return render_template('indexSVM.html',prediction_text_svm ='Resultado: Vidro Não-Processado para Veículos')
elif resposta_svm == 5:
return render_template('indexSVM.html',prediction_text_svm ='Resultado: Vidro para potes')
elif resposta_svm == 6:
return render_template('indexSVM.html',prediction_text_svm ='Resultado: Vidro para Louças')
elif resposta_svm == 7:
return render_template('indexSVM.html',prediction_text_svm ='Resultado: Vidro para Faróis de Carros')
else:
return render_template('indexSVM.html',prediction_text_svm ='Resultado: ')
if __name__ == "__main__":
app.run(debug=False)
但是,当我单击提交按钮时,浏览器上会显示 405 错误。我不知道错误在哪里,请有人可以帮助我
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。