听闻大佬的flask第二版要出新书了 预祝大卖
看了书上的聊天室的项目 我想把日常的一些脚本 放到flask后台执行 然后将stdout输出到web页面上
简单来说就是类似jenkins那种效果啦
google了一下 就想用socket和subprocess来实现
‘’’
@socketio.on(‘connect’, namespace=name_space)
def connected_msg():
event_name = ‘dcenter’
sub = subprocess.Popen(’/root/sub.py’, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
while sub.poll() != 0 or sub.poll() is None:
sublog = sub.stdout.readline().decode()
broadcasted_data = {‘data’: sublog}
socketio.emit(event_name, broadcasted_data, broadcast=False, namespace=name_space)
‘’’
额 结果就是前段页面上 啥都没显示…
请问我应该怎么办?
谢谢。很久没有写 SocketIO 相关的东西,建议从下面的步骤排查:
- 先写一个最小的可以工作的示例,比如输出一个固定的字符串到页面上。
- 测试你的 stdout 数据可以正常获取到。
- 最后再替换掉固定字符串,改为输出 stdout 数据。
谢谢回复
试过单独使用subprocess输出到控制台
或者socketio输出到前端 都没问题…
结合起来就不行了…
如果哪位大佬有时间的话给写个小demo
万份感谢