使用 feedparser/RSS,如何在 django 中将提要对象从 views.py 传递到 .html?

Using feedparser/RSS, how do I pass the feed object from views.py to .html in django?

我正在尝试向我的 Web 应用程序添加一个简单的 RSS 解析器。 objective 用于抓取一个 RSS 频道并在单个页面上显示来自该频道的新闻。我设法对单个对象执行此操作,但不能对多个对象(例如 10 个)执行此操作。

该项目假定我有文件 views.pyRSS.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 %}

将提要对象传递到模板时,您必须遍历提要对象的 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 %}

一般文档:

条目文档:

A list of dictionaries. Each dictionary contains data from a different entry. Entries are listed in the order in which they appear in the original feed.