【发布时间】:2021-04-23 23:22:02
【问题描述】:
我有一个 python 脚本 (script.py),当我在控制台中运行它时,它会不断接收 JSON 格式的数据,现在我想在网页上可视化控制台的输出或能够执行script.py 并捕获输出以在浏览器中查看,根据我所阅读的内容,我了解使用 FLASK 我可以做到这一点,一个示例或指南来实现它。
from flask import Flask
app = Flask(__name__)
@app.route("/")
def code():
out = open(r'output.py', 'r').read()
return exec(out)
if __name__ == '__main__':
app.run(host='0.0.0.0')
///////////////////////////////////////
builtins.RuntimeError
RuntimeError:线程 'Thread-9' 中没有当前事件循环。 Traceback(最近一次通话最后一次)
File "..//python3.6/site-packages/flask/app.py", line 2301, in __call__
return self.wsgi_app(environ, start_response)
File "..//python3.6/site-packages/flask/app.py", line 2287, in wsgi_app
response = self.handle_exception(e)
File "..//python3.6/site-packages/flask/app.py", line 1733, in handle_exception
reraise(exc_type, exc_value, tb)
File "..//python3.6/site-packages/flask/_compat.py", line 35, in reraise
raise value
File "..//python3.6/site-packages/flask/app.py", line 2284, in wsgi_app
response = self.full_dispatch_request()
File "..//python3.6/site-packages/flask/app.py", line 1807, in full_dispatch_request
rv = self.handle_user_exception(e)
File "..//python3.6/site-packages/flask/app.py", line 1710, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "..//python3.6/site-packages/flask/_compat.py", line 35, in reraise
raise value
File "..//python3.6/site-packages/flask/app.py", line 1805, in full_dispatch_request
rv = self.dispatch_request()
File "..//python3.6/site-packages/flask/app.py", line 1791, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/usr/share/server/www/test/index1.py", line 9, in dynamic_page
return exec(file)
File "<string>", line 60, in <module>
/////////////////////////////////////// ///////////////////////// 输出.py
#!/usr/bin/env python3
导入 json 导入系统
从手机导入Runn、BReporter、EventHandler
类 NoOpEventHandler(EventHandler):
def on_event(self, event):
self._reporter.on_event(event)
类 VerboseNoOpEventHandler(NoOpEventHandler):
FILTER_EVENTS = False
类 JsonReporter(BReporter):
def __init__(self):
self._has_first_line = False
def on_event(self, event):
json_data = json.dumps(dict(event), sort_keys=True)
if self._has_first_line:
sys.stdout.write(',')
else:
sys.stdout.write('[')
self._has_first_line = True
sys.stdout.write('\n {}'.format(json_data))
def close(self):
sys.stdout.write('\n]')
reporter = JsonReporter()
跑步者=跑步([ 'tcp://test123:test123@127.0.0.1:5038', ],记者,处理程序=NoOpEventHandler) runner.run()
【问题讨论】: