无法从Flask GUI停止Python

时间:2018-04-10 11:18:19

标签: python-3.x flask

我正在尝试创建一个GUI,我将有2个按钮。 “开始”按钮将触发我的python脚本并显示移动图形。当我按下停止按钮时,图表应该退出并且python应该停止。

当我点击开始按钮时,我得到了所需的结果。但它进入无限循环并且停止按钮不会退出代码。单击停止按钮不会将代码带到装饰器并且我的函数stop()不会被执行。

以下是摘录:

    <!DOCTYPE html>
    <html>
        <title>HOME PAGE..</title>
        <body>
            <h1>Home Page..!!</h1>
            <form action="/plot" method="POST">
      <input type="number" name="Number"  ><br> 
      <br>  
      <input type="submit" value="Start" >
      </form>

      <form action="/stop" method="POST">
      <br>
      <input type="submit" value="Stop" >
      </form>

        </body>
    </html>
            </form>
        </body>
    </html>

我想退出的功能没有被调用。

以下是我的HTML:

create or replace type "GT_OBJECT_TYPE_REL_IDS" as object (OBJECT_ID number, OBJECT_TYPE varchar2(64));
/
create or replace type "T_OBJECT_TYPE_REL_IDS" as table of "GT_OBJECT_TYPE_REL_IDS";
/
VARIABLE CURS REFCURSOR;
/
DECLARE
   v_OBJECT_TYPE_REL_IDS T_OBJECT_TYPE_REL_IDS;
BEGIN
   --Explicit Constructor
   SELECT GT_OBJECT_TYPE_REL_IDS (10, 'STUDENT')
   BULK   COLLECT INTO v_OBJECT_TYPE_REL_IDS
   FROM   DUAL;

   SELECT GT_OBJECT_TYPE_REL_IDS (11, 'COLLEGE')
   BULK   COLLECT INTO v_OBJECT_TYPE_REL_IDS
   from   DUAL;
   OPEN :curs FOR SELECT * FROM TABLE (v_OBJECT_TYPE_REL_IDS);
end;
/
PRINT :CURS

1 个答案:

答案 0 :(得分:0)

您的Flask应用无法响应您的输入,因为它在您的循环中忙碌。 您需要将结果的计算放在单独的Thread或Coroutine中,以阻止它阻止您的主Flask线程。

您还可以使用Websockets与前端进行通信。看看Flask-SocketIO。它使用Websockets在Flask和您的前端之间进行通信。