Javascript 在django模板中实时显示控制台输出

Javascript 在django模板中实时显示控制台输出,javascript,python,django,websocket,Javascript,Python,Django,Websocket,我是websocket的新手,所以我遇到了一些问题。我正在尝试创建一个基于web的用户界面,用户将按下按钮并在后台启动脚本,用户将被重定向到显示控制台输出,其中将显示数据。我想在浏览器中实时显示控制台输出。当脚本完成她的工作时,我能够显示输出,如果脚本正在工作,我不知道如何显示数据。这是我的密码 views.py: def display_console_output(request): if request.method == 'GET': process = subp

我是websocket的新手,所以我遇到了一些问题。我正在尝试创建一个基于web的用户界面,用户将按下按钮并在后台启动脚本,用户将被重定向到显示控制台输出,其中将显示数据。我想在浏览器中实时显示控制台输出。当脚本完成她的工作时,我能够显示输出,如果脚本正在工作,我不知道如何显示数据。这是我的密码

views.py:

def display_console_output(request):
    if request.method == 'GET':
        process = subprocess.Popen('ping -t 8.8.8.8', shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
        output = process.communicate()[0]
        return render(request, 'update_file/display_console_output.html', {'page_title': 'Console Output',
                                                                           'console_output': (output.decode('utf-8')),})
routing.py:

application = ProtocolTypeRouter({
    # Empty for now (http->django views is added by default)
    'websocket': AllowedHostsOriginValidator(
        AuthMiddlewareStack(
            URLRouter(
                [
                    url(r"^(?P<consoleOutput>[\w.@+-]+)/$", ConsoleDataConsumer),
                ]
            )
        )
    )
})
application=ProtocolTypeRouter({
#暂时为空(默认情况下添加http->django视图)
“websocket”:允许HostSoriginValidator(
奥特米德尔瓦雷斯塔克(
URLRouter(
[
url(r“^(?P[\w.@+-]+)/$”,ConsoleDataConsumer),
]
)
)
)
})
如果你能给我一些建议来解决我的问题,我将不胜感激

  • 在脚本运行时,您可以获取其输出并将其保存到数据库中,在模板中,您可以每隔一段时间(比如每秒)发送AJAX请求,以获取更新的控制台输出并在模板中显示它
  • 设置websocket服务器(如果您使用的是django,则可以使用用于websocket的通道()),在模板中建立websocket连接,并将控制台输出实时推送到客户端

  • 请不要破坏你的帖子,为别人做更多的工作。通过在堆栈溢出上发布,您已经在for SO下授予了分发该内容的不可撤销的权利。根据SO政策,任何故意破坏行为都将恢复原状。如果您想了解有关删除帖子的更多信息,请访问