如何将python列表发布到django

时间:2019-05-10 20:59:56

标签: python html list

我正在建立一个网站,我可以从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的任何传感器的计时器

1 个答案:

答案 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在我的模板上呈现它,这是我能做的最好的事情,但是先前的答案足以分享,因为创建模型无法回答当前问题。谢谢大家的时间