微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 Python 和 FLASK 修复错误 405?

如何解决如何使用 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 举报,一经查实,本站将立刻删除。