flask 执行命令返回

1.目前做了个网页版命令执行使用了falsk-socketio,但是发现不能逐行

def shell(cmd, kwargs):
    print('>>>>>>>>> 执行命令:%s' % cmd)
    program_name = kwargs.get('program_name')
    socketio_event = kwargs.get('socketio_event')
    socketio_sid = kwargs.get('socketio_sid')
    try:
        p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
        print('>>>>>>>>> 客户端: %s 程序名: %s 进程ID:%s ' % (socketio_sid, program_name, str(p.pid)))

        while p.poll() is None:
            res = p.stdout.readline()
            print(res)
            emit(socketio_event, str(res))

        for i in p.stdout.readlines():
            emit(socketio_event, str(i))
    except Exception as e:
        debug(e)
        return -1
    else:
        return 0

2.发现tplink的ping命令是用ajax请求完成的,tplink的那种ping命令执行如何使用flask实现?

阅读 3k
1 个回答

你参考一下我的demo gsw945/flask-sio-demo
里面有正确的和不正确的例子,也给出了说明。
对于你的例子,你只展示了执行的主要代码,我并不知道你的整个流程是怎样的。如果能展示真个流程,我有兴趣进一步解答。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题