Python Flask app-错误404,在服务器上找不到请求的URL。如果您手动输入URL,请检查拼写并重试

Python Flask app-错误404,在服务器上找不到请求的URL。如果您手动输入URL,请检查拼写并重试,python,flask,keras,Python,Flask,Keras,我收到“错误404-在服务器上找不到请求的URL。如果您手动输入URL,请检查拼写并重试。”同时运行以下代码: import base64 import numpy as np import io from PIL import Image import keras from keras import backend as K from keras.models import Sequential from keras.models import load_model from keras.pr

我收到“错误404-在服务器上找不到请求的URL。如果您手动输入URL,请检查拼写并重试。”同时运行以下代码:

import base64
import numpy as np
import io
from PIL import Image
import keras
from keras import backend as K
from keras.models import Sequential
from keras.models import load_model
from keras.preprocessing.image import ImageDataGenerator
from keras.preprocessing.image import img_to_array
from flask import request
from flask import jsonify
from flask import Flask


app = Flask(__name__)

def get_model():
    global model
    model = load_model('xrayV2.h5')
    print("Model loaded!")

def preprocess_image(image, target_size):
    if image.mode !="RGB":
        image = image.convert("RGB")
    image = image.resize(target_size)
    image = img_to_array(image)
    image = np.expand_dims(image, axis=0)

    return image

print("Loading model!!")
get_model()

@app.route("/predict", methods=['POST'])
def predict():
    message = request.get_json(force=True)
    encoded = message['image']
    decoded = base64.b64decode(encoded)
    image = Image.open(io.BytesIO(decoded))
    processed_image = preprocess_image(image, target_size=(224, 224))

    prediction = model.predict(processed_image).tolist()

    response = {
        'prediction': {
            'normal': prediction[0][0],
            'pneumonia': prediction[0][1]
        }
    }
    return jsonify(response)
代码或html、javascript代码有什么问题吗

<!DOCTYPE html>
<html>
<head>
    <title>image app</title>
    <style>
        *{
          font-size:30px;
        }
    </style>
</head>

<body>
    <input id="image-selector" type="file">
    <button id="predict-button">Predict</button>
    <p style="font-weight:bold">Predictions</p>
    <p>Normal: <span id="normal-prediction"></span></p>
    <p>Pneumonia: <span id="pneumonia-prediction"></span></p>
    <img id="selected-image" src=""/>

    <script src="https://code.jquery.com/jquery=3.3.1.min.js"></script>
    <script>
      let base64Image;
      $("image-selector").change(function(){
        let reader = new FileReader();
        reader.onLoad = function(e) {
          let dataURL = reader.result;
          $('#selected-image').attr("src", dataURL);
          base64Image = dataURL.replace("data:image/jpeg;base64,","");
          console.log(base64Image);
        }
        reader.readAsDataURL($("image-selector")[0].files[0]);
        $("#normal-prediction").text("");
        $("#pneumonia-prediction").text("");
      });

      $("#predict-button").click(function(event){
        let message = {
          image: base64Image
        }
        console.log(message);
        $.post("http://10.0.0.4:5000/predict", JSON.stringify(message), function(response){
          $("#noraml-prediction").text(response.prediction.normal.toFixed(6));
          $("#pneumonia-prediction").text(response.prediction.pneumonia.toFixed(6));
          console.log(response);
        });
      });
      </script>
  </body>
</html>

图像应用程序
*{
字体大小:30px;
}
预测
预测

正常:

肺炎:

让我们来看看图像; $(“图像选择器”).change(函数(){ let reader=new FileReader(); reader.onLoad=函数(e){ 让dataURL=reader.result; $(“#所选图像”).attr(“src”,dataURL); base64Image=dataURL.replace(“数据:image/jpeg;base64,,”); console.log(base64Image); } reader.readAsDataURL($(“图像选择器”)[0]。文件[0]); $(“#正常预测”).text(“”); $(“#肺炎预测”)。正文(“”); }); $(“#预测按钮”)。单击(函数(事件){ 让消息={ 图片:base64Image } 控制台日志(消息); $.post(”http://10.0.0.4:5000/predict,JSON.stringify(消息),函数(响应){ $(“#noraml预测”).text(response.prediction.normal.toFixed(6)); $(“#肺炎预测”).text(response.prediction.pneumonia.toFixed(6)); 控制台日志(响应); }); });

密码有什么问题吗?或者使用tensorflow版本?我正在运行Python3.7.4和tensorflow 2.1.0,您无法处理返回HTML页面的问题,因此请使用“GET”方法创建一个,并在名为Static@app.route(“/static”,methods=['POST','GET'])def index():返回render_模板(“predict.html”)是这样吗?您可以使用渲染模板,但如果没有模板,您可以返回一个静态文件,试图向静态文件夹路径发出错误请求。浏览器(或代理)发送了一个此服务器无法理解的请求。