Django视图和Python脚本输出显示

时间:2016-05-06 02:10:19

标签: python django view

更新 我现在可以单击我的按钮并在控制台上获取ping输出。我编辑了我的“view_a4_gw1.py”并创建了模板“ping_results.html”以显示Django网站中的python脚本(ping结果)输出。但它在网站上返回“无”。不确定为什么?

概述和目标 我有一个Python脚本,可以通过SSH连接到交换机,并对邻居网关执行ping操作。我正在尝试设置一个网页,我可以点击一个按钮并执行python脚本并在网页上显示ping结果(或弹出窗口/框?)。

* python脚本在控制台/命令行中执行时有效。 *我的Django视图,网址和模板已配置。

当前状态 当我单击网页上的按钮来执行ping的python脚本时,我没有返回任何输出。我确实在Web服务器控制台上注意到这条消息:“GET / HTTP / 1.1”200 981,看起来GET是成功的。

代码附件: views.py - 我的模板的主要视图

view_a4_gw1.py - 我导入到视图中的python脚本(脚本是a4_gw1.py)的视图

urls.py - 我的应用的url.py

ete_dash.html - 我的模板

我只需要一个提示引导我朝正确的方向显示我脚本的输出。我已经阅读了本网站和互联网上的大部分Django和Python脚本建议,但到目前为止似乎没有任何效果。

views.py

from django.shortcuts import render

def ete_dash(request):
    return render(request, 'ete/ete_dash.html', {})

view_a4_gw1.py

 from django.shortcuts import render
 import a4_gw1

 def ping(request):
    output=a4_gw1.a4_gw1()
    return render(request, ‘ete/ping_results.html’, {‘output’:output})

urls.py

    from django.conf.urls import url
    from . import views
    import view_a4_gw1

    urlpatterns = [
        url(r'^$', views.ete_dash, name='ete_dash'),
        url(r’^ping/$', view_a4_gw1.ping, name='ping'),
]

ete_dash.html

{% load staticfiles %}
<html>
   <body> 
    <div class=”button”>
    <a href=”{% url “ping” %}”>sjc12-a4-gw1</a>
    </div>
    </body>
</html>

ping_results.html

<html>
    <head>
        <title>Ping Results</title>
    </head>

    <body>
    <div>
    <pre>{{ output }}</pre>
    </div>
    </body>
</html>

2 个答案:

答案 0 :(得分:0)

您是否收到任何其他错误。看起来你没有在view_a4_gw1.py

中导入HttpResponse

答案 1 :(得分:0)

您有两个具有相同URL的视图,Django将仅使用匹配的第一个视图。您需要为ping提供不同的网址;为什么不r'^ping/$'