我有一个用 Perl(Simple Hello world)编写的后端程序。我是 Django 的新手。
我想与 Django 交互这个 helloworld.pl,动作应该是这样的,当我点击登录按钮时,它必须处理 helloworld.pl 文件并在页面上显示 Helloworld。
我有一个用 Perl(Simple Hello world)编写的后端程序。我是 Django 的新手。
我想与 Django 交互这个 helloworld.pl,动作应该是这样的,当我点击登录按钮时,它必须处理 helloworld.pl 文件并在页面上显示 Helloworld。
详细解释可以参考我的博客>>
我建议你使用 Subprocess 模块的 Popen 方法。您的 shell 脚本可以作为系统命令与 Subprocess 一起执行。
这里有一点帮助。
你的views.py应该是这样的。
from subprocess import Popen, PIPE, STDOUT
from django.http import HttpResponse
def main_function(request):
if request.method == 'POST':
command = ["perl","your_script_path.pl"]
try:
process = Popen(command, stdout=PIPE, stderr=STDOUT)
output = process.stdout.read()
exitstatus = process.poll()
if (exitstatus==0):
result = {"status": "Success", "output":str(output)}
else:
result = {"status": "Failed", "output":str(output)}
except Exception as e:
result = {"status": "failed", "output":str(e)}
html = "<html><body>Script status: %s \n Output: %s</body></html>" %(result['status'],result['output'])
return HttpResponse(html)
在这个例子中,脚本的stderr和stdout保存在变量' output '中,脚本的退出代码保存在变量' exitstatus '中。
配置您的urls.py以调用视图函数“ main_function ”。
url(r'^the_url_to_run_the_script$', main_function)