我正在建立一个网站,我可以从PRTG获取一些JSON列表,但是我使它在控制台中工作,该代码将过滤掉传感器的DOWN状态,但是我不知道如何将其发布到Django上,制作传感器停机时间的历史记录列表。
我试图用下面的代码发布数据,但是我什至无法加载该站点,它仍然加载在127.0.0.1上
from django.shortcuts import render
from django.http import HttpResponse
import json
import requests
import time
def index(request):
url = "https://site.site.com/api/table.json?content=status=down&username=user&passhash=hash&count=200000"
starttime=time.time()
while True:
response = requests.get(url)
data = response.json()
d = data
result_list = [d for d in data['status%3Ddown'] if d['status'] == 'Down']
time.sleep(10.0 - ((time.time() - starttime) % 10.0))
return print(result_list)
#return HttpResponse(result_list) this dont work either
我希望得到一个列表,如果可以的话,有人可以指出我如何在数据库中创建此结果的记录,我想每30秒向我的PRTG发送一次请求,以便对此进行历史记录并添加带有标签DOWN的任何传感器的计时器
答案 0 :(得分:0)
嘿,我很久以前做过,但是我会分享我的两种解决方案
最简单的方法是制作一个熊猫数据框并将其呈现为html,看起来像这样
def example_page(request):
context = {"title" : "example"}
url = "https://prtg.c3ntro.com/api/table.json?content=status=down&username=someuser&passhash=123&count=123"
response = requests.get(url)
data = response.json()
d = data
result_list = [d for d in data['status%3Ddown'] if d['status'] == 'Down']
df = pd.DataFrame(result_list)
return HttpResponse(df.to_html())
另一种方法是创建一个模型,然后使用django_tables2在我的模板上呈现它,这是我能做的最好的事情,但是先前的答案足以分享,因为创建模型无法回答当前问题。谢谢大家的时间