能够输出显示python的代码是_如何在网页中持续显示Python输出?

这是一个允许您流式传输子流程输出的解决方案。事后使用相同的模板静态加载它(假设您的子进程将其自己的输出记录到文件中;如果没有,则将进程输出记录到日志文件中留给读者练习)

from flask import Response, escape

from yourapp import app

from subprocess import Popen, PIPE, STDOUT

SENTINEL = '------------SPLIT----------HERE---------'

VALID_ACTIONS = ('what', 'ever')

def logview(logdata):

"""Render the template used for viewing logs."""

# Probably a lot of other parameters here; this is simplified

return render_template('logview.html', logdata=logdata)

def stream(first, generator, last):

"""Preprocess output prior to streaming."""

yield first

for line in generator:

yield escape(line.decode('utf-8')) # Don't let subproc break our HTML

yield last

@app.route('/subprocess/', methods=['POST'])

def perform_action(action):

"""Call subprocess and stream output directly to clients."""

if action not in VALID_ACTIONS:

abort(400)

first, _, last = logview(SENTINEL).partition(SENTINEL)

path = '/path/to/your/script.py'

proc = Popen((path,), stdout=PIPE, stderr=STDOUT)

generator = stream(first, iter(proc.stdout.readline, b''), last)

return Response(generator, mimetype='text/html')

@app.route('/subprocess/', methods=['GET'])

def show_log(action):

"""Show one full log."""

if action not in VALID_ACTIONS:

abort(400)

path = '/path/to/your/logfile'

with open(path, encoding='utf-8') as data:

return logview(logdata=data.read())这样,您可以在命令的初始运行期间(通过POST)和在事实之后静态提供保存的日志文件期间获得一致的模板。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值