如何在django中上传并执行文件并显示结果?

问题描述 投票:0回答:1

我想使用 Django 构建一个 Web 应用程序这些是我计划执行的流程:

Page1 - 用户上传要使用上传按钮执行的文件,然后按执行按钮。

第2页 - 执行Python代码并显示结果。

我已经尝试了上传部分,但我仍然需要执行和显示结果方面的帮助。

python html django
1个回答
0
投票

我写了这段代码,def upload_script 成功运行,但 def run_script 不运行脚本,它只在脚本输出中显示“Error:”。 你能帮我解决这个错误吗

# views.py
import subprocess
from django.shortcuts import render, redirect
from .models import Script
from .forms import ScriptForm
    
def upload_script(request):
    if request.method == 'POST':
        form = ScriptForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return redirect('run_script')
    else:
        form = ScriptForm()
    return render(request, 'crm/upload_script.html', {'form': form})
    
def run_script(request):
        script = Script.objects.last()  # Get the last uploaded script
        if script:
            # Ensure the path is correct and secure
            script_path = script.script_file.path
            # Execute the script securely
            try:
                result = subprocess.run(['python', script_path], capture_output=True, text=True, check=True)
                output = result.stdout
            except subprocess.CalledProcessError as e:
                output = f"Error: {e.output}"
        else:
            output = "No script uploaded."
        return render(request, 'crm/script_result.html', {'output': output})
© www.soinside.com 2019 - 2024. All rights reserved.