Python+Flask 动态生成的 RSS 提要无效

Python+Flask dynamic generated RSS feed is invalid

我正尝试在 patife.com/rss/ 为我的博客应用程序创建 RSS 提要。该应用程序基于 python 使用 Flask 构建。我尝试创建一个模板,该模板将动态生成包含所有条目的 RSS。但它无效

这是当前代码(我删除了 link 生成器,因为它可以正常工作,我无法发布包含太多 link 的帖子)

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
    <channel>
        <title>Patife.com</title>
        <link>http://www.patife.com/</link>
        <description>Startups. I can't help myself.</description>
            {% for entry in entries %}
                <item>
                  <title>{{ entry.title_en }}</title>
                  <link>http://www.patife.com/entries/{{ entry.id }}</link>
                  <guid>http://www.patife.com/entries/{{ entry.id }}</guid>
                  <pubDate>{{ entry.date_created.strftime('') }}</pubDate>
                  <description>{{ entry.text_en|safe }}</description>
                </item>
            {% endfor %}
    </channel>
</rss>   

您的日期无效,因为您使用的是原始日期时间。他们没有与他们相关的时区信息。大多数数据库不支持时区感知值,因此您需要将所有原始日期时间转换为感知日期时间,或者只在模板中包含时区。

<pubDate>{{ entry.date_created.strftime('%a, %d %b %y %T') }} UTC</pubDate>

HTML 未验证的原因是,当您将 HTML 嵌入 XML 时,它会被视为 XML。 RSS 不支持任意标签,因此验证失败。 XML 允许您通过将节点包裹在 CDATA 分隔符中来将未转义的值嵌入到节点中。

<description><![CDATA[{{ entry.text_en|safe }}]]></description>