gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 03:41:36 25 4
gpt4 key购买 nike

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

  • 上传文件
  • 选择一些参数
  • 使用输入文件和参数运行 bash 脚本
  • 下载结果

我知道你可以用 php、javascript 来做到这一点...但我从来没有用这些语言编程过。不过我可以用 python 编程。我在 python 中使用了 pyQT 库来实现类似的目的。

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

最佳答案

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

首先创建一个包含 FileField 和其他参数字段的表单:

from django import forms

class UploadFileForm(forms.Form):
my_parameter = forms.CharField(max_length=50)
file = forms.FileField()

在您的 View 中包含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

查看https://docs.djangoproject.com/en/1.10/topics/http/file-uploads/有关如何在 Django 中上传处理文件的更多示例和说明。

关于python django 在服务器中运行 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39547220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com