在烧瓶渲染的HTML中打印与python控制台相同的输出

时间:2020-05-23 22:59:03

标签: python html flask ssh paramiko

我有一个python脚本,可以打印网络设备上的控制台输出,并且可以正常工作,我得到的输出是这样的:Python Console Output

现在,我正尝试使用Flask在Web服务器上运行它,并且工作正常,除了呈现的HTML模板中的输出是一个像这样的字符串:

display mac-address 44FB-5ABC-9788
--------------------------------------------------------------------------- 
MAC Address VLAN/VSI/BD Learned-From Type 
------------------------------------------------------------------------------
44fb-5abc-9788 1579/-/- Eth-Trunk1 amic
------------------------------------------------------------------------------ 
Total items displayed = 1 

我想要的是HTML页面中与python控制台相同的输出,这是我对flask的输出:

@app.route('/result',methods = ['POST', 'GET']) 
def result():    
    if request.method == 'POST':
        hw_input = str(request.form.get("hw"))
        commandinput = str(request.form.get("command"))
        user = 'user'
        passv = 'pass'
        passg = 'password'
        user_prompt = '.*name:'
        pass_prompt =  '.*assword:'
        hw_prompt = '.*>'
        hw_connect = 'telnet ' + hw_input

        ssh_client = paramiko.SSHClient() 
        ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        ssh_client.connect(hostname='host', username=user, password=passv)

        interact = SSHClientInteraction(ssh_client, timeout=10, display=False)
        interact.send(hw_connect)
        interact.expect(user_prompt)
        interact.send(user)
        interact.expect(pass_prompt)
        interact.send(passg)
        interact.expect(hw_prompt)
        interact.send(commandinput)
        interact.expect(hw_prompt)
        output = interact.current_output_clean
        return render_template("result.html",result = output)

1 个答案:

答案 0 :(得分:0)

非常感谢!!我在result.html中缺少<pre>标签