Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在网页上显示ML模型的结果_Javascript_Python_Rest - Fatal编程技术网

Javascript 在网页上显示ML模型的结果

Javascript 在网页上显示ML模型的结果,javascript,python,rest,Javascript,Python,Rest,我正在探索RESTful Flask API,作为学习,我用HTML创建了一个小型web表单。请参阅下面的HTML代码 <!DOCTYPE html> <html> <h2>User Input</h2> <body <script> src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"> </script> <scr

我正在探索RESTful Flask API,作为学习,我用HTML创建了一个小型web表单。请参阅下面的HTML代码

<!DOCTYPE html>
<html>
<h2>User Input</h2>
<body
<script>
src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"> 
</script>
<script src="/static/js/predict.js"></script>
<p>Please enter the Power prices per unit</p>

<form method="get" action='/predict' target ="_blank" 
enctype="multipart/form-data">
 New Value - 1:<br>
  <input type="number" id="New_val_1">
  <br>
  New Value - 2:<br>
  <input type="number" id="New_val_2">
  <br><br>
  <button id="btnpredict" type="button">Predict</button>

</form> 

<p>If you click the "Submit" button, the form-data will be sent to a page 
called "/action_page.php".</p>

</body>
</html>'
最后,将使用上面的HTML呈现的app.py代码,并在收到表单ML模型时使用传递的值

from flask import Flask, redirect, request, render_template,json, Response
import statsmodels.api as sm
import numpy as np
from sklearn.externals import joblib

app = Flask(__name__)
@app.route('/')
@app.route('/home')
def home():
    return render_template('index.html')

@app.route('/predict', methods = ['GET'])
def predict():
     if request.method=='GET':
         X_value_new_1 = request.values.get('New_val_1') 
         X_value_new_2 = request.values.get('New_val_2')
         X_1,X_2 = X_value_new_1,X_value_new_2
         testData = np.array([X_1,X_2]).astype(np.float).reshape(-1,1)
         testData=sm.add_constant(testData)
         pred = Regression_model.predict(testData)
         dump = json.dumps({'prediction':list(pred)})
         resp = Response(dump,mimetype='application/json')
     return resp
   return None

def load_model():
    global Regression_model
    Regression_model = joblib.load('E:/model_file_save')

if __name__ == "__main__":
    print("**Starting Server...")

    load_model()

    app.run(debug=True)
现在的问题是: 当我点击“预测”按钮时,什么也没发生。但是,如果在地址栏上写入“”,则会得到JSON格式的正确预测值

如何解决这个问题?JQuery有什么问题吗? 请帮忙

最好的 AR

您能告诉我ajax方法中的“uInput”是什么吗?我认为您没有将输入值传递给请求。
from flask import Flask, redirect, request, render_template,json, Response
import statsmodels.api as sm
import numpy as np
from sklearn.externals import joblib

app = Flask(__name__)
@app.route('/')
@app.route('/home')
def home():
    return render_template('index.html')

@app.route('/predict', methods = ['GET'])
def predict():
     if request.method=='GET':
         X_value_new_1 = request.values.get('New_val_1') 
         X_value_new_2 = request.values.get('New_val_2')
         X_1,X_2 = X_value_new_1,X_value_new_2
         testData = np.array([X_1,X_2]).astype(np.float).reshape(-1,1)
         testData=sm.add_constant(testData)
         pred = Regression_model.predict(testData)
         dump = json.dumps({'prediction':list(pred)})
         resp = Response(dump,mimetype='application/json')
     return resp
   return None

def load_model():
    global Regression_model
    Regression_model = joblib.load('E:/model_file_save')

if __name__ == "__main__":
    print("**Starting Server...")

    load_model()

    app.run(debug=True)
Read textbox values e.g. $("#tag").val() and concate with ajax url e.g. 
predict?New_val_1=1000&New_val_2=2000'
and remove data property. You can also pass values using data property see below link for example.