我有一个视图,该视图应该在数据库域处于联机还是脱机状态时输出。
def pingDomain(request, page):
page_object = get_object_or_404(Table, page=page)
try:
subprocess.check_call(['ping', '-c', '1', page_object.page])
except subprocess.CalledProcessError:
host_online = True
else:
host_online = False
context = {
'online': host_online,
}
return render(request, 'home.html', context)
在html模板上
<th class="center-align red-text text-darken-4" scope="row">
{% if online %}
<i class="small material-icons green-text">check_circle</i>
{% else %}
<i class="small material-icons red-text">close</i>
{% endif %}
</th>
问题是,在html模板上,它表明域处于脱机状态,但实际上处于联机状态。
我在哪里弄错了?有人熟悉吗?
答案 0 :(得分:1)
我相信您要实现的目标如下:
def pingDomain(request, page):
page_object = get_object_or_404(Table, page=page)
try:
subprocess.check_output(['ping', '-c', '1', page_object.page])
host_online = True
except subprocess.CalledProcessError:
host_online = False
context = {
'online': host_online,
}
return render(request, 'home.html', context)
原因是我更改了您的逻辑,因为如果subprocess
出现错误,您想设置host_online = False
而不是相反
答案 1 :(得分:1)
您不是简单地向后获取变量值吗?您将True
设置为post
,但无法执行ping呼叫