【发布时间】:2020-12-23 08:20:37
【问题描述】:
我正在创建一个简单的 ui,它需要 2 个文件作为输入,如果我们按下提交按钮,然后尝试运行 script.py(这是 Python 脚本)并在屏幕或某个输出文件夹上呈现输出
#forms.py
from django import forms
class AwsForm ( forms.Form ):
Aws_SourceFile = forms.FileField ()
Aws_RefernceFile = forms.FileField ()
#views.py
from django.shortcuts import render
from .forms import AwsForm
import subprocess
def home_view(request):
context = {}
context [ 'form' ] = AwsForm ()
return render ( request , "home.html" , context )
def submit_view(request):
info = request.POST [ 'info' ]
def my_view(request):
if request.method == 'GET':
form = AwsForm ()
else:
if form.is_valid ():
info = request.POST [ 'info_name' ]
output = script_function ( info )
return render ( request , 'myapp/home.html' , {
'info': info ,
'output': output ,
} )
return render ( request , 'myapp/home.html' , {
'form': form ,
} )
def script_function(post_from_form):
print ( post_from_form )
return subprocess.check_call ( [ '\script_18122020.py' , post_from_form ] )
#urls.py
from django.contrib import admin
from django.urls import path
from myapp.views import home_view, submit_view
urlpatterns = [
path('', home_view ),
path('submit', submit_view),
]
#home.html
{% block main_content %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Homepage</title>
</head>
<body>
<h1>Welcome to Adwait Algorithm and Aws.</h1>
<form method="POST" enctype="multipart/form-data">
<form action="your_view_url" method="post">
{% csrf_token %}
{{ form.as_p}}
<input type="submit" value="Submit">
</form>
<p> Post Data: {{ info }} </p>
<p> Result: {{ output }} </p>
{% endblock main_content %}
</body>
</html>
我正在尝试获取一个脚本,我想将输出显示到文件夹、html 文件或屏幕上。
【问题讨论】: