首页 > 解决方案 > 如何将 python 列表发布到 django

问题描述

我建立了一个网站,我可以从我的 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 标签的时间

标签: pythonhtmllist

解决方案


嘿,我很久以前就这样做了,但我会分享我的两个解决方案

最简单的方法是制作一个 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 在我的模板上渲染它,这是我能做的最好的事情,但是之前的答案足以分享,因为创建模型不会回答当前的问题。感谢大家的时间


推荐阅读