Коммутатор Cisco Python сценарий в Flask HTML вывод - PullRequest
0 голосов
/ 05 августа 2020

У меня есть сценарий python, который S SH (Netmiko) в коммутаторе Cisco запускает команду «показать статус интерфейса» и выводит ее на экран. При запуске скрипта из интерфейса командной строки вывод выглядит нормально построчно. Если я помещаю этот же сценарий в настройку Flask, я получаю результат, но проблема в том, что нет разделения строк, как в CLI. Все это собрано вместе. Итак, мой вопрос: есть ли способ отформатировать Flask, чтобы вывести его, как в CLI, но в HTML? Ниже мой код и результаты как из CLI, так и из Flask. Заранее благодарим.

файл my_flask_app.py

    from flask import Flask, request
from processing import do_calculation
 
app = Flask(__name__)
app.config["DEBUG"] = True
 
@app.route("/", methods=["GET", "POST"])
def adder_page():
    if request.method == "POST":
        number1 = request.form.get("number1")
        result = do_calculation(number1)
        return '''
                <html>
                    <body>
                      <p> {result} </p>
                    </body>
                </html>
        '''.format(result=result)
 
    return '''
        <html>
            <body>
                <p>Enter switch IP:</p>
                <form method="post" action=".">
                    <p><input type= "text" name="number1" /></p>
                    <p><input type="submit" value="Check Status" /></p>
                </form>
            </body>
        </html>
    '''

Файл Processing.py

   from netmiko import ConnectHandler
 
 
def do_calculation(number1):
    iosv_l2 = {'device_type': 'cisco_ios', 'username': 'user1', 'password': 'password123', 'ip': number1}
 
    net_connect = ConnectHandler(**iosv_l2)
    result = net_connect.send_command('show int status')
    return result

Вывод из Flask - не требуется

Имя порта Состояние Vlan Дуплексная скорость Тип Gi0 / 1 1-я точка доступа не подключена 1 авто авто 10/100 / 1000BaseTX Gi0 / 2 2-я точка доступа подключенная магистраль a-full a-1000 10/100 / 1000BaseTX Gi0 / 3 notconnect 1 auto auto 10/100 / 1000BaseTX Gi0 / 4 ESXi Server подключен 101 a-full a-100 10/100 / 1000BaseTX Gi0 / 5 Ooma VoIP подключен 101 a-full a-100 10/100 / 1000BaseTX Gi0 / 6 Ring Alarm connected 101 a-full a-100 10/100 / 1000BaseTX Gi0 / 7 1st Flr AP подключена транк a-full a-1000 10/100 / 1000BaseTX Gi0 / 8 Bench notconnect 101 auto auto 10/100 / 1000BaseTX Gi0 / 9 notconnect 1 auto auto 10/100 / 1000BaseTX Gi0 / 10 Подключен телевизор в гостиной 101 a-full a-100 10/100 / 1000BaseTX Gi0 / 11 notconnect 1 auto auto 10 / 100 / 1000BaseTX Gi0 / 12 notconnect 1 auto auto 10/100 / 1000BaseTX Gi0 / 13 магистраль к серверу VM подключенная магистраль a-100 10/100 / 1000BaseTX G i0 / 14 notconnect 1 авто авто 10/100 / 1000BaseTX Gi0 / 15 к lab-s 1 соединенная магистраль a-full a-1000 10/100 / 1000BaseTX Gi0 / 16 notconnect 1 авто авто 10/100 / 1000BaseTX Gi0 / 17 notconnect 1 авто auto 10/100 / 1000BaseTX Gi0 / 18 notconnect 1 auto 10/100 / 1000BaseTX Gi0 / 19 notconnect 1 auto auto 10/100 / 1000BaseTX Gi0 / 20 notconnect 1 auto 10/100 / 1000BaseTX Gi0 / 21 pfSense Trunk Re0 notconnect 1 auto auto 10/100 / 1000BaseTX Gi0 / 22 Офисный коммутатор подключил магистраль a-full a-1000 10/100 / 1000BaseTX Gi0 / 23 к OPT1 (RE0) на F подключенной магистрали a-full a-1000 10/100 / 1000BaseTX Gi0 / 24 к LAN (RE2) на FW подключен 101 a-full a-1000 10/100 / 1000BaseTX Gi0 / 25 notconnect 1 auto auto Not Present Gi0 / 26 notconnect 1 auto auto Not Present Gi0 / 27 notconnect 1 auto auto Not Present Gi0 / 28 notconnect 1 auto auto Отсутствует

Вывод из интерфейса командной строки - желаемый

IP-адрес интерфейса в порядке? Метод Статус Протокол Vlan1 не назначен ДА не настроен административно отключен Vlan101 192.168.1.2 ДА вручную вверх GigabitEthernet0 / 1 не назначен ДА не установлен GigabitEthernet0 / 2 не назначен ДА отключен GigabitEthernet0 / 3 не назначен ДА отключен GigabitEthernet0 / 4 не назначен ДА не настроен GigabitEthernet0 / 5 не назначен ДА не настроен GigabitEthernet0 / 6 не назначен ДА не настроен GigabitEthernet0 / 7 не назначен ДА не настроен GigabitEthernet0 / 8 не назначен ДА отключен GigabitEthernet0 / 9 не назначен ДА не установлен GigabitEthernet0 / 10 не назначен ДА не настроен GigabitEthernet0 / 11 не назначен ДА отключен GigabitEthernet0 / 12 не назначен ДА отключен GigabitEthernet0 / 13 не назначен ДА не настроен GigabitEthernet0 / 14 не назначен ДА отключен GigabitEthernet0 / 15 не назначен ДА не настроен GigabitEthernet0 / 16 не назначен ДА отключен GigabitEthernet0 / 17 не назначен ДА отключен GigabitEthernet0 / 18 не назначен ДА отключен GigabitEthernet0 / 19 не назначен ДА отключен GigabitEthernet0 / 20 не назначен ДА отключен GigabitEthernet0 / 21 не назначен ДА отключен GigabitEthernet0 / 22 не назначен ДА отключен GigabitEthernet0 / 23 не назначен ДА не настроен GigabitEthernet0 / 24 не назначен ДА не настроен GigabitEthernet0 / 25 не назначен ДА отключен GigabitEthernet0 / 26 не назначен ДА отключен GigabitEthernet0 / 27 не назначен ДА отключен GigabitEthernet0 / 28 не назначен ДА отключен

...