如何在Flask framework浏览器上实时逐语句显示python脚本执行进度?

如何在Flask framework浏览器上实时逐语句显示python脚本执行进度?,python,html,flask,websocket,Python,Html,Flask,Websocket,我正在尝试将中用python编写的命令行脚本转换为web应用程序 我打算使用python和flask设计一个web应用程序。用户将在网页上提供一些输入并提交。然后,输入数据将作为参数传递给用python编写的函数(基本上是旧脚本)。这个函数将做很多事情。当函数正在执行时,我想在网页上实时显示函数执行的状态(完成的步骤) 例如— 如果用户在网页上输入字段值-半径、长度、宽度、底面、高度,然后单击提交按钮,则名为计算面积(半径、长度、宽度、底面、高度)的函数将运行,应用程序应定期发送该面积进行循环,

我正在尝试将中用python编写的命令行脚本转换为web应用程序

我打算使用python和flask设计一个web应用程序。用户将在网页上提供一些输入并提交。然后,输入数据将作为参数传递给用python编写的函数(基本上是旧脚本)。这个函数将做很多事情。当函数正在执行时,我想在网页上实时显示函数执行的状态(完成的步骤)

例如— 如果用户在网页上输入字段值-
半径、长度、宽度、底面、高度
,然后单击
提交
按钮,则名为
计算面积(半径、长度、宽度、底面、高度)
的函数将运行,应用程序应定期发送该面积进行循环,矩形和三角形一个接一个,每个面积计算之间有一定的时间延迟。例如

   Calculating area of circle ...
   Area of circle is - xxx
   Calculating area of rectangle ...
   Area of rectangle is - yyy
   Calculating area of triangle ...
   Area of triangle is - zzz

有人能告诉我什么可以帮助实现这一点吗?提前感谢。

@metatoaster为您指明了正确的方向: 您可以返回字符串(例如“计算圆的面积…”),而不是在进程中返回整数

在您的网页上,您需要使用JavaScript/JQuery/AJAX轮询进度,并将其附加到HTML
div
textarea
,如示例所示

const logarea = $('#logarea');
setInterval(update_progress, 500); // Polling every 500ms

function update_progress() {
    $.get('progress/' + task_id, function (progress) {    
        if (logarea.val().indexOf(progress) === -1) {
            logarea.val(logarea.val() + progress + '\n');
        }
    });
}

您必须使用JavaScript/AJAX定期向服务器询问结果。这是否回答了您的问题?好的,如果我在网页上向用户显示一些状态,而不是一个进度条,那会更好。@furas-您能进一步说明或共享一个链接吗?谢谢