我用烧瓶创建了我的微型 Web 框架,它使用结构来调用远程服务器中的 shell 脚本。
shell 脚本可能需要更长的时间才能完成。我从浏览器发送 POST 请求并等待结果。
结构在烧瓶运行屏幕上显示实时内容,但烧瓶在远程脚本完成后将值返回给浏览器。
我怎样才能让我的烧瓶在我的浏览器屏幕上打印实时值?
我的烧瓶片:
@app.route("/abc/execute", methods=['POST'])
def execute_me():
value = request.json['value']
result = fabric_call(value)
result = formations(result)
return json.dumps(result)
我的布料:
def fabric_call(value):
with settings(host_string='my server', user='user',password='passwd',warn_only=True):
proc = run(my shell script)
return json.dumps(proc)
更新
我也尝试过流式传输。但它没有用。脚本完成执行后,输出将显示在我的 curl POST 中。我错过了什么?
@app.route("/abc/execute", methods=['POST'])
def execute_me():
value = request.json['value']
def generate():
for row in formations(fabric_call(value)):
yield row + '\n'
return Response(generate(), mimetype="text/event-stream")