Недавно начал изучать джангу. Подскажите в следующем примере, как передать значение input формы команде Subprocess.Popen() для запуска dig и вывода результата в шаблон dig.html
Попробовал сделать через файл forms.py и определение класса DigForm.
forms.py
from django import forms class DigForm(forms.Form): ip = forms.CharField()
urls.py
from django.urls import path from . import views urlpatterns = [ path('dig', views.dig, name='dig'), ]
views.py
from django.shortcuts import render from .forms import DigForm def dig(request): form = DigForm(request.POST) return render(request, 'myblog/dig.html', {'form': form})
dig.html
{% extends 'myblog/base.html' %} {% block content_dig %} <p>Use this DNS lookup tool to easily view the standard DNS records for a domain.</p> {{ form }} <br><br><input type="submit" value="GET THE DNS RECORDS" /> {% endblock %}
Следующий код работает, но как вы видите он делает dig на google.com:
def dig(request): cmd = subprocess.Popen(["dig", google.com], shell=True, stdout=subprocess.PIPE) rez_dig = cmd.communicate()[0].decode() return render(request, 'myblog/dig.html', {'rez_dig': rez_dig})
Приложил скрин там единственный input, идея в том чтобы юзер ввел домен/IP и dig отработал по введенному значению в input. После клика по GET THE DNS RECORDS. Т.е. как подставить заместо google.com значение из поля ip ?