我想使用 Django 构建一个 Web 应用程序这些是我计划执行的流程:
Page1 - 用户上传要使用上传按钮执行的文件,然后按执行按钮。
第2页 - 执行Python代码并显示结果。
我已经尝试了上传部分,但我仍然需要执行和显示结果方面的帮助。
我写了这段代码,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})