Небольшое описание того, что я пытаюсь сделать.
Я хочу создать пользовательский интерфейс (web / HTML), через который я могу отправлять команды маршрутизатору и отображать результат на веб-странице / HTML.
Вот код, который я использую: -
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':'192.168.50.145',
'username':'me',
'password':'12345',
'secret':'12345',
'port':'22'
}
cmd = request.POST.get('command', '')
netconnect = ConnectHandler(**devices)
#print("connection established with", devices['ip'])
output = netconnect.send_command(cmd)
return render(request,'first_app/forms.html', {'form': form,
'output':output})
else:
form = CmdForm()
return render(request,'first_app/forms.html', {'form': form})
forms.py
from django import forms
class CmdForm(forms.Form):
command = forms.CharField(label='Command to execute')
urls.py
from django.contrib import admin
from django.urls import path
from django.conf.urls import include
from first_app import views
urlpatterns = [
path('Automation_page/', views.form_name_view,name='IP form'),
path('admin/', admin.site.urls),
path('', views.index,name='first'),
path('first_app/',include('first_app.urls')),
]
forms.html
<code><!DOCTYPE html>
{% load staticfiles %}
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>FORMS</title>
</head>
<body>
<h1> IP address form </h1>
<p>Run command:</p>
<form method="POST"> {% csrf_token %}
{{ form }}
<input type="submit" value="Run command!" />
</form><br>
{% if request.POST %}
<p>Command output:</p>
<pre>{{ output }}
{% endif%}
я получаю сообщение об ошибке при посещении страницы Automation_page /
ValueError at / Automation_page /
Представление first_app.views.form_name_view не возвращало объект HttpResponse. Вместо этого он вернул None.
Метод запроса: GET
URL запроса: http://127.0.0.1:8000/Automation_page/
Джанго версия: 2.2.3
Тип исключения: ValueError
Исключение:
Представление first_app.views.form_name_view не возвращало объект HttpResponse. Вместо этого он вернул None.
Расположение исключения: K: \ Work \ DevNet \ ENV1 \ lib \ site-packages \ django \ core \ handlers \ base.py в _get_response, строка 126
Исполняемый файл Python: K: \ Work \ DevNet \ ENV1 \ Scripts \ python.exe
Версия Python: 3.7.3
Python Path:
[ 'K: \ Work \ DevNet \ first_project',
'K: \ Work \ DevNet \ ENV1 \ Scripts \ python37.zip',
'K: \ Work \ DevNet \ ENV1 \ DLL файлы',
'K: \ Work \ DevNet \ ENV1 \ Lib',
'K: \ Work \ DevNet \ ENV1 \ Scripts',
'C: \ Users \ карта \ AppData \ Local \ программы \ питон \ python37-32 \ Lib',
'C: \ Users \ карта \ AppData \ Local \ программы \ питон \ python37-32 \ DLL файлы',
'K: \ Work \ DevNet \ ENV1',
'K: \ Work \ DevNet \ ENV1 \ Lib \ сайт-пакеты']
Нужна помощь по этому вопросу.
спасибо, кто готов помочь