我正在尝试在patife.com/rss/上为我的博客应用创建RSS Feed。该应用程序是在带有Flask的python上构建的。我尝试创建一个模板,该模板将动态生成包含所有条目的RSS ..但它无效
这是当前的代码(我删除了链接生成器bc的工作,我不能发布链接太多的帖子)
<?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>
答案 0 :(得分:0)
您的日期无效,因为您使用的是天真的日期时间。他们没有与他们相关的时区信息。大多数数据库都不支持时区感知值,因此您需要将所有天真日期时间转换为感知日期时间,或者只是在模板中包含时区。
<pubDate>{{ entry.date_created.strftime('%a, %d %b %y %T') }} UTC</pubDate>
HTML无法验证的原因是,当您在XML中嵌入HTML时,它会被视为XML。 RSS不支持任意标记,因此验证失败。 XML允许您通过将非转义值包含在CDATA
分隔符中来将非转义值嵌入到节点中。
<description><![CDATA[{{ entry.text_en|safe }}]]></description>