Python Flask app-错误404,在服务器上找不到请求的URL。如果您手动输入URL,请检查拼写并重试
我收到“错误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
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”)是这样吗?您可以使用渲染模板,但如果没有模板,您可以返回一个静态文件,试图向静态文件夹路径发出错误请求。浏览器(或代理)发送了一个此服务器无法理解的请求。