我有一个DJANGO应用程序(kwtest),它有视图(a+b)和相关的URL。当我访问第一个kw\u dash(kw\u dash.html)URL并按下一个按钮时,它调用一个python脚本(从import)并将其返回到“return\u results”(script\u return.html)URL。功能正常,但在浏览器中“return\u results”的输出为“none”。脚本也是连续的,我只能终止SSH会话(目前)。我已经搜索了一段时间的结果和指导后(我是新的这)。非常感谢您的帮助
脚本在控制台中运行良好
kw\u dash.html
{% load staticfiles %}
<html>
<body>
<div class=”button”>
<a href={% url 'kwtest:remote_results' %}>Run_Results</a>
</div>
</body>
</html>
脚本\u return.html
<html>
<head>
<title>Remote Results</title>
</head>
<body>
<div>
<pre>{{ output }}</pre>
</div>
</body>
</html>
视图a
from django.shortcuts import render
def kw_dash(request):
return render(request, 'kwtest/kw_dash.html', {})
视图B
#- * -coding: utf - 8 - * -
from django.shortcuts import render
from django.http import HttpResponse
from django.http import HttpResponseRedirect
import remote_results
def remote_results(request):
import remote_results
output = remote_results.remote_results()
return render(request, 'kwtest/script_results.html', {
'output': output
})
远程\u results.py
import paramiko
def remote_results():
hostname ='192.168.xx.xx'
port = 22
username='xxxxxx'
pkey_file = '/home/test/.ssh/id_rsa'
key = paramiko.RSAKey.from_private_key_file(pkey_file)
s = paramiko.SSHClient()
s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
s.connect(hostname, port, pkey=key)
stdin, stdout, stderr = s.exec_command('cd /root/xxxxx/xxxx/ ; python xxxxx.py', get_pty=True)
print stdout.read()
s.close()
if __name__=="__main__":
remote_results()
实际结果应该是xxxxx.py在正确url中的连续结果,当前当我强制脚本停止url时,返回“none”
xxxxx.py在控制台中工作
remote_results()
从不返回任何内容,因此其值为None你的意思是
return stdout.read()
而不是仅仅打印它吗相关问题 更多 >
编程相关推荐