Как я могу опубликовать список Python для Django - PullRequest
1 голос
/ 10 мая 2019

Я настраиваю веб-сайт, где я могу получить список JSON, который я получаю из своей PRTG, однако я заставил его работать в консоли, код будет фильтровать датчики со статусом 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, чтобы сделать историю об этом и добавить таймер того, как долго любой датчик был с меткой ВНИЗ

1 Ответ

0 голосов
/ 23 июля 2019

Эй, я так давно, но я поделюсь обоими своими решениями

Самый простой способ - создать фрейм данных pandas и преобразовать его в 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, что было лучшим, что я мог сделать, однако предыдущий ответ достаточно, чтобы поделиться, так как создание модели не ответит на текущий вопрос. Спасибо всем за время

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...