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>
相关推荐
qq_37215423几秒前
Python异步爬虫如何应对封IP_结合asyncio与代理池实现轮询请求
jvm·数据库·python
abc123456sdggfd2 分钟前
php怎么处理跨域请求_php如何设置header解决跨域问题详解
jvm·数据库·python
伊玛目的门徒4 分钟前
多线程韩漫爬虫下载器
爬虫·python·漫画·韩漫
zhangchaoxies5 分钟前
如何在CSS中正确加载本地JPG背景图片
jvm·数据库·python
Hello未来6 分钟前
llamafactory 的使用和安装
python·深度学习·语言模型·自然语言处理·nlp
z44247532618 分钟前
CSS如何实现元素悬浮在页面底部_利用fixed定位与底部间距
jvm·数据库·python
m0_5964063718 分钟前
mysql数据库用户密码加固策略_实施强密码策略与定期轮换
jvm·数据库·python
m0_6765443819 分钟前
CSS如何实现语义化样式编写_使用BEM规范提升命名直观性
jvm·数据库·python
KivenMitnick19 分钟前
CialloVOL 1.2:便捷好用的轻量化内存取证分析平台
windows·python·安全·网络安全·flask·系统安全·安全威胁分析
他是龙55124 分钟前
70:Python安全 & SSTI模板注入 & Jinja2引擎 & 利用绕过 & 工具实战
开发语言·python·安全