Django创建RSS订阅

Django有一个内置的聚合提要框架,可以使用它来动态生成 RSS或Atom提要的方式。web提要是一种数据格式(通常是XML),它为用户提供经常更新的内容。用户将能够使用RSS聚合器订阅你的提要,这是一种用于阅读提要并获得新内容通知的软件。

在博客应用程序目录中创建一个新文件,并将其命名为feeds.py

创建Feed类的子类。title、link和description属性分别对应于<title>、<link>和<description> RSS元素。

python 复制代码
from django.contrib.syndication.views import Feed
from django.db.models.base import Model
from django .template.defaultfilters import truncatewords
from .models import Post

class LatestPostsFeed(Feed):
    title = 'My blog'
    link = '/blog/'
    description = 'New posts of my blog.'

    def items(self):
        return Post.published.all()[:5]

    def item_title(self,item):
        return item.title

    def item_description(self,item):
        return truncatewords(item.body,30)
  • items()方法检索要包含在提要中的对象,这里只检索此提要最近发布的五个帖子。
  • item_title()和item_description()方法接收items()返回的每个对象,并返回每个项目的标题和描述。
  • 使用truncatewords内置模板过滤器来构建包含前30个单词的博客文章的描述。

编辑blog/urls.py文件,导入刚刚创建的LatestPostsFeed,并在一个新的URL模式中实例化这个feed:

python 复制代码
from .feeds import LatestPostsFeed

app_name = "blog"
urlpatterns = [

	#...
    path('feed/',LatestPostsFeed(), name='post_feed'),

]

最后一步是向博客的侧边栏添加提要订阅链接。
编辑blog/base.html模板

python 复制代码
<p><a href="{% url "blog:post_feed" %}">Subscribe to my RSS feed</a></p>
相关推荐
2601_962078191 小时前
Python中calendar.weekday用法
python·编程技巧·calendar·日期处理·weekday
2601_962218611 小时前
万象生鲜系统业财一体化底层打通技术自动生成经营账单
大数据·数据库·人工智能·python·算法
2601_966949651 小时前
为什么量化策略需要大量历史股票数据?从回测可信度理解数据规模
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
2601_962885721 小时前
如何用 Python 扫描 A 股跳空缺口并统计缺口回补概率?
java·前端·python
李高钢2 小时前
Python FastAPI 框架入门:从零搭建你的第一个高性能 API 服务
数据库·python·fastapi
ocean21032 小时前
2025-2026年Python面试高频知识点洞察
开发语言·python·面试·python八股文
Warson_L3 小时前
Python的OrderedDict
python
隐擎fox3 小时前
高性能网络爬虫架构设计:基于 Python 的长连接复用与分布式会话池调度实践
分布式·python·网络协议·tcp/ip·高并发·网络爬虫、
Warson_L3 小时前
Python的TypedDict
python·langchain·llm
晓窗科技4 小时前
口碑好的AI基座服务商
大数据·人工智能·python