私はコンソール出力をHTMLに表示するためにDjangoフレームワークを使用しています。このコマンドを実行するには、check_output
のsubprocess
モジュールをPythonで使用しています。 HTML入力フォームからの入力を受け取ります。問題は、私がファイル内のデフォルト値output
である "None
"しかHTMLページに表示されないということです。 以下は、ビューファイルとHTMLファイルのコードです。私はこれの初心者ですので、私はあなたの援助に感謝します。Djangoでコンソール出力をHTMLに表示するにはどうすればよいですか?
Views.py
from django.shortcuts import render
from django.shortcuts import redirect
from .forms import command_form
import subprocess as sp
# Create your views here.
def welcome_page(request):
output=""
if request.method == "POST":
myform = command_form(request.POST)
if (myform.is_valid()):
execute_command = myform.cleaned_data['cmd_string']
output = sp.check_output(execute_command, shell=True)
else:
myform = command_form()
return render(request, 'ovs/welcome.html', {'output': output})
else:
return render(request, 'ovs/welcome.html', {})
のwelcome.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>welcome to ovs GUI</title>
</head>
<body>
<h3>Choose the option:</h3>
<form method="POST">{% csrf_token %}
Enter the command: <input type="text" name="cmd_string" id="cmd_string"/>
<input type="submit" value="Run"/>
</form>
<h3>{{ output }}</h3>
</body>
</html>
フォーム
from django import forms
class command_form(forms.Form):
command = forms.CharField(max_length=200)
あなたはそれがうまくいかないことを説明できますか?あなたの問題は何ですか? –
私の問題は、データがコンソール出力が表示されないということです。 HTMLページには常に "output"のデフォルト値が与えられます。それは、たとえそれがpostメソッドからデータを解析できるのであれば私に懐疑的なものになります。 –
@AnandTyagi。以下の回答のいずれかがあなたのために働いたのですか? –