Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.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 如何将Python Flask路由上的字符串发送到JS函数?_Javascript_Python_Flask - Fatal编程技术网

Javascript 如何将Python Flask路由上的字符串发送到JS函数?

Javascript 如何将Python Flask路由上的字符串发送到JS函数?,javascript,python,flask,Javascript,Python,Flask,这是app.py app.route('/analyze', methods=['POST']) async def analyze(requestArg): img_data = await requestArg.form() img_bytes = await (img_data['file'].read()) img = open_image(BytesIO(img_bytes)) prediction = learn.predict(img)[0]

这是
app.py

app.route('/analyze', methods=['POST'])
async def analyze(requestArg):
    img_data = await requestArg.form()
    img_bytes = await (img_data['file'].read())
    img = open_image(BytesIO(img_bytes))
    prediction = learn.predict(img)[0]
    result(str(prediction))
我正试图将
str(prediction)
发送到
result()
函数的
static/js/script.js

function result(str) {
    $(".pd-result").show();

    var resultText = $(".text")
    switch (str) {
        case "emotion":
            text.html("angry");
            break;

        default:
            break;
    }
};

我试图直接调用
result(str(prediction))
,但它不起作用。

app.py
返回
prediction

app.route('/analyze', methods=['POST'])
async def analyze(requestArg):
    img_data = await requestArg.form()
    img_bytes = await (img_data['file'].read())
    img = open_image(BytesIO(img_bytes))
    prediction = learn.predict(img)[0]
    return prediction
在js文件中,在成功的post请求中调用函数:

$(() => {
    Var data = {...};
    $.post("/analyze", data)
        .done((prediction)=>{
            result(prediction)
        }))
})

请参见此处:

a)您不能随机(或非随机)混合使用JavaScript和Python b)Python代码在服务器上运行,而JS代码是客户端代码,因此在用户浏览器中运行。您需要使用向服务器的
/analyze
路由发出请求,然后在成功回调中处理结果。您是对的-您必须使用`$.post()`。这应该可以工作,因为您已经在使用jQuery。我修正了密码,谢谢!我对Ajax不太熟悉,所以我不确定哪里出了问题。