首页 > 解决方案 > 有没有办法在网页上显示功能活动

问题描述

我正在开发一个烧瓶 Web 应用程序,其中一个函数正在列表上执行某些任务。现在在遍历列表并对列表中的每个元素进行一些操作之后,将呈现一个新页面。但是对每个元素执行的操作需要一些时间。因此,我想在调用该函数的同一网页上显示输出,同时该函数正在运行,因为哪些元素操作已完成。完成后只加载新页面。请给我一些想法,我该怎么做。

标签: pythonflask

解决方案


执行此操作的典型方法是拥有这 2 个 API

  1. 接受请求、开始处理并返回 Http 状态代码的“作业接受者”POST API 202(Accepted)。响应包含一个 URL,您可以点击该 URL 以获取应用程序的状态
  2. 一个“状态轮询器”API,您可以对其执行 GET 以获取列表上操作的状态。UI 可以根据返回的状态显示进度。

请注意,状态可以是抽象的“进行中”到具体的“92% 完成”。在内部,第二个 API 有一种方法可以获取列表上操作的进度量

参考 https://restfulapi.net/http-status-202-accepted/

引用上述链接中的相关位

如果您向 REST API 提交了一个长时间运行的异步作业,那么 API 可以返回如下结果:

HTTP 状态 202(已接受)

{
    "task": {
        "href": "/api/company/job-management/jobs/2130040",
        "id": "2130040"
    }
}

现在用户代理可以定期向 URI /api/company/job-management/jobs/2130040 发送 HTTP GET 请求以获取作业的完成状态。上述 API 的响应将告知实际调度操作的当前状态。


推荐阅读