Хотите получить IP-адрес от пользователя, который будет введен вручную (не по месту нахождения) - PullRequest
0 голосов
/ 10 июля 2019

Вот код

В Forms.py

from django import forms

class CmdForm(forms.Form):
    ip_address = forms.CharField(label='Enter IP address:')
    command = forms.CharField(label='Command to execute:')

В Views.py

from django.shortcuts import render
from first_app.forms import CmdForm
from django.http import HttpResponse

def index(request):
 my_dict = {'insert_me': ""}
 return render(request,'first_app/index.html',context=my_dict)

def form_name_view(request):
   if request.method == "POST":
     form = CmdForm(request.POST)
       if form.is_valid():
        from netmiko import ConnectHandler

        devices = {
        'device_type':'cisco_ios',
        'ip':'ip_address',
        'username':'mee',
        'password':'12345',
        'secret':'12345',

        }
        ipInsert = request.POST.get('ip_address', '')
        cmd = request.POST.get('command', '')
        netconnect = ConnectHandler(**devices)
        #print("connection established with", devices['ip'])
        getIP = netconnect.send_command(ipInsert)
        output = netconnect.send_command(cmd)

        return render(request,'first_app/forms.html', {'form': form, 'output':output, 'getIP':getIP})
       else:
        form = CmdForm()
       return render(request,'first_app/forms.html', {'form': form})
   else:
       return render(request,'first_app/forms.html', {})

однако я получаю ошибку: -

NetMikoTimeoutException at / Automation_page / Время ожидания подключения к устройству: cisco_ios ip_address: 22 Метод запроса: URL-адрес запроса POST: http://127.0.0.1:8000/Automation_page/ Версия Django: 2.2.3 Тип исключения: NetMikoTimeoutException Значение исключения:
Подключениетайм-аут устройства: cisco_ios ip_address: 22 Местоположение исключения: C: \ Users \ karti \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ netmiko \ base_connection.py в файле create_connection, строка 864 Исполняемый файл Python: C: \ Users \ karti \ AppData \ Local \ Programs \ Python \ Python37-32 \ python.exe Версия Python: 3.7.3 Путь к Python:
['K: \ Work \ DevNet \ first_project', 'C:\ Users \ karti \ AppData \ Local \ Programs \ Python \ Python37-32 \ python37.zip ',' C: \ Users \ karti \ AppData \ Local \ Programs \ Python \ Python37-32 \ DLLs ',' C: \ Users\ karti \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib ',' C: \ Users \ karti \ AppData \ Local \ Programs \ Python\ Python37-32 ',' C: \ Users \ karti \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages ']

почему я получаю тайм-аут, хотямои устройства работают и работают.

Спасибо всем, кто хочет помочь.!: -)

Ответы [ 2 ]

0 голосов
/ 10 июля 2019

единственное изменение, которое я сделал: -

from netmiko import ConnectHandler
        ipInsert = request.POST.get('ip_address', '')
        devices = {
        'device_type':'cisco_ios',
        'ip':ipInsert,
        'username':'mee',
        'password':'12345',
        'secret':'12345',

        }
        cmd = request.POST.get('command', '')
        netconnect = ConnectHandler(**devices)
        #print("connection established with", devices['ip'])
        getIP = netconnect.send_command(ipInsert)
        output = netconnect.send_command(cmd)

, и оно работает так, как я хотел; -)

0 голосов
/ 10 июля 2019

вероятно линия

'ip':'ip_address',

следует читать

'ip': form.cleaned_data['ip_address'],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...