У меня есть сценарий, в котором я хочу показать вывод долго работающего скрипта через Flask API. Я следовал примеру, приведенному для Flask, и он работает. Я получаю dmesg
steam в своем браузере.
import subprocess
import time
from flask import Flask, Response
app = Flask(__name__)
@app.route('/yield')
def index():
def inner():
proc = subprocess.Popen(
['dmesg'], # call something with a lot of output so we can see it
shell=True,
stdout=subprocess.PIPE
)
for line in iter(proc.stdout.readline,''):
time.sleep(1) # Don't need this just shows the text streaming
yield line.rstrip() + '<br/>\n'
return Response(inner(), mimetype='text/html') # text/html is required for most browsers to show this
Дело в том, что я давно пользуюсь Flask-Restful
. Поэтому я хочу сделать потоковую передачу с его помощью. Я попробовал это, и это не работает.
import subprocess
import time
from flask import Response
from flask_restful import Resource
class CatalogStrings(Resource):
def get(self):
return Response(inner(), mimetype='text/html')
def inner():
proc = subprocess.Popen(
['dmesg'], # call something with a lot of output so we can see it
shell=True,
stdout=subprocess.PIPE
)
for line in iter(proc.stdout.readline, ''):
time.sleep(1) # Don't need this just shows the text streaming
yield line.rstrip() + '<br/>\n'
Пожалуйста помоги