Используя feedparser / RSS, как я могу передать объект канала из views.py в .html в django? - PullRequest
0 голосов
/ 20 января 2019

Я пытаюсь добавить простой анализатор RSS в мое веб-приложение.Цель состоит в том, чтобы захватить канал RSS и отобразить новости с него на одной странице.Мне удалось сделать это для одного объекта, но я не могу сделать это для многих объектов (скажем, 10).

В проекте предполагается, что у меня есть файлы views.py и RSS.html.

Следующий код IS, который работает для одного объекта синтаксического анализа.

views.py:

import feedparser

def rss(request):
    feeds = feedparser.parse("https://www.informationweek.com/rss_simple.asp")
    entry = feeds.entries[0]
    return render(
        request,
        'posts/rss.html',
        feeds={
            'title': entry.title,
            'published': entry.published,
            'summary': entry.summary,
            'link': entry.link,
            'image':entry.media_content[0]['url']
        }
    )

RSS.html:

<h3>{{ title }}</h3>
<i>Date: {{ published }}<p></i>
<b>Summary:</b><p> {{ summary }}<p>
<b>Link:</b><a href="{{ link }}"> {{ link }}</a><p>
<b>Image:</b><p><img src="{{ image }}"></img><p>

Не знаюЯ не понимаю, как передать все каналы в RSS.html.

Я пытаюсь передать его через представления, и он не работает.

Ниже приведен код, который НЕ работает:

views.py:

return render(request, 'posts/rss.html', feeds)

RSS.html

{% for entry in feeds %}
    <li><a href="{{entry.link}}">{{entry.title}}</a></li>
{% endfor %}

1 Ответ

0 голосов
/ 20 января 2019

При передаче объекта канала в шаблон необходимо выполнить цикл по полю entries объекта канала:

Python:

import feedparser

def rss(request):
    feed = feedparser.parse("https://www.informationweek.com/rss_simple.asp")
    return render(request, 'posts/rss.html', {'feed': feed})

HTML:

{% for entry in feed.entries %}
    <li><a href="{{entry.link}}">{{entry.title}}</a></li>
{% endfor %}

Общая документация:

Записи документации:

Список словарей.Каждый словарь содержит данные из разных записей.Записи перечислены в том порядке, в котором они отображаются в исходной ленте.

...