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>
相关推荐
七夜zippoe9 分钟前
边缘计算:Python在IoT中的应用
python·物联网·esp32·边缘计算·iot
2301_8184190110 分钟前
Python虚拟环境(venv)完全指南:隔离项目依赖
jvm·数据库·python
MgArcher11 分钟前
python基础:使用list和tuple
python
leeshuqing22 分钟前
《Python程序设计(AI辅助学习版)》已经出版
人工智能·python·学习
Yao.Li22 分钟前
python-pcl 安装排障流程
开发语言·python
sjmaysee31 分钟前
vscode配置django环境并创建django项目(全图文操作)
vscode·django·sqlite
pioneeryz33 分钟前
基于python 高斯模糊图片处理工具
python
rosmis35 分钟前
自动化文献检索与下载工作流 (Phase 3 逻辑树)
python·pdf·自动化
bughunter36 分钟前
LiteLLM 供应链攻击深度复盘:一个 .pth 文件如何窃取你所有云凭证
python·安全
shaoming377637 分钟前
SQL Server2022版+SSMS安装教程(保姆级)
后端·python·flask