Список не отображается в html - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь создать таблицу в html, но список даже не работает

Это мой сайт. Html

{% extends "blog/base.html" %}
{% block content %}
<h1>tab in my website</h1>
<p>site info</p>

{% if result_dict %}
<ul>
{% for i in result_dict %}
    <li> {{ forloop.counter }} - {{ i }}</li>
{% endfor %}
</ul>
{% else %}
    <p>This is not working</p>
{% endif %}
{% endblock content %}

Это то, что у меня есть в моем views.py

def prtg(request, *args, **kwargs):
response = requests.get("https://prtg.c3ntro.com/api/table.json?content=status=down&username=someuser&passhash=somehash&count=200000000")
data = response.json()
d = data
result_list = [d for d in data['status%3Ddown'] if d['status'] == 'Down']
return render(request, 'blog/prtg.html', {'title':'PRTG'}, {'result_list': result_list})

Когда я открываю, страница не загружает какую-либо информацию, и она должна показывать, по крайней мере, те датчики, которые я фильтрую, но ничего нам не показывает, вместо этого я получаю сообщение оператора else «Это не работает»

Что я делаю не так?

Ответы [ 2 ]

1 голос
/ 25 июня 2019

У вас две проблемы.Элементы должны быть в одном словаре:

return render(request, 'blog/prtg.html', {'title':'PRTG', 'result_list': result_list})

, и вы назвали его result_list, а не result_dict, поэтому используйте это имя в шаблоне.

{% if result_list %}
<ul>
{% for i in result_list %}
    <li> {{ forloop.counter }} - {{ i }}</li>
{% endfor %}
</ul>
{% else %}
    <p>This is not working</p>
{% endif %}
0 голосов
/ 20 июля 2019

Наконец-то нашел способ показать, что я хотел в html

Так что ответ был очень прост, хотя я не нашел способа автоматически обновить это

Но код выглядит так

import requests
import pandas as pd
def example_page(request):
    context = {"title" : "example"}
    url = "my.website.json"
    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())

Таким образом, мы получаем встроенный в html фрейм данных

Хотя вы должны обновить страницу, чтобы получить новые данные из URL-адреса json, заставить его работать, спасибо за ваше время, оставьте мойответьте, если у кого-то возникли проблемы с этим

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