Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python django在服务器中运行bash脚本_Python_Django - Fatal编程技术网

python django在服务器中运行bash脚本

python django在服务器中运行bash脚本,python,django,Python,Django,我想创建一个网站应用程序来运行位于服务器中的bash脚本。基本上,我希望这个网站: 上传文件 选择一些参数 使用输入文件和参数运行bash脚本 下载结果 我知道你可以用php,javascript。。。但我从未用这些语言编写过程序。但是我可以用python编程。我在python中使用pyQT库也有类似的用途 这可以用django完成吗?还是应该开始学习php和javascript? 我在Django中找不到有关此特定任务的任何教程。这可以使用Django框架在Python中完成 首先创建一个

我想创建一个网站应用程序来运行位于服务器中的bash脚本。基本上,我希望这个网站:

  • 上传文件
  • 选择一些参数
  • 使用输入文件和参数运行bash脚本
  • 下载结果
我知道你可以用php,javascript。。。但我从未用这些语言编写过程序。但是我可以用python编程。我在python中使用pyQT库也有类似的用途

这可以用django完成吗?还是应该开始学习php和javascript?
我在Django中找不到有关此特定任务的任何教程。

这可以使用Django框架在Python中完成

首先创建一个表单,包括
文件字段
和其他参数的字段:

from django import forms

class UploadFileForm(forms.Form):
    my_parameter = forms.CharField(max_length=50)
    file = forms.FileField()
在视图中包括
UploadFileForm
,并调用函数来处理上载的文件:

from django.http import HttpResponseRedirect
from django.shortcuts import render
from .forms import UploadFileForm

# Imaginary function to handle an uploaded file.
from somewhere import handle_uploaded_file

def upload_file(request):
    if request.method == 'POST':
        form = UploadFileForm(request.POST, request.FILES)
        if form.is_valid():
            my_parameter = form.cleaned_data['my_parameter']
            # Handle the uploaded file
            results = handle_uploaded_file(request.FILES['file'], title)
            # Clear the form and parse the results
            form = UploadFileForm()
            return render(request, 'upload.html', {'form': form, 'results': results})
    else:
        form = UploadFileForm()
    return render(request, 'upload.html', {'form': form})
创建函数以处理上载的文件并调用bash脚本:

import subprocess
import os

def handle_uploaded_file(f, my_parameter):
    file_path = os.path.join('/path/to/destination/', f.name)
    # Save the file 
    with open(file_path, 'wb+') as destination:
        for chunk in f.chunks():
             destination.write(chunk)
    # Call your bash script with the
    output = subprocess.check_output(['./my_script.sh',str(file_path),str(my_parameter)], shell=True)
    return output

查看更多关于如何在Django中上载句柄文件的示例和说明。

欢迎使用stackoverflow。到目前为止你干了什么?在从别人那里得到答案之前,你应该先表现出自己的努力。