Django入门 专题
您的位置:python > Django入门 专题 > Django RSS
Django RSS
作者:--    发布时间:2019-11-20
django带有聚合feed生成框架。有了它,你可以创建rss或atom只需继承django.contrib.syndication.views.feed类。

让我们创建一个订阅源的应用程序。

from django.contrib.syndication.views import feed
from django.contrib.comments import comment
from django.core.urlresolvers import reverse

class dreamrealcommentsfeed(feed):
   title = "dreamreal's comments"
   link = "/drcomments/"
   description = "updates on new comments on dreamreal entry."

   def items(self):
      return comment.objects.all().order_by("-submit_date")[:5]
		
   def item_title(self, item):
      return item.user_name
		
   def item_description(self, item):
      return item.comment
		
   def item_link(self, item):
      return reverse('comment', kwargs = {'object_pk':item.pk}) 
  • 在feed类, title, link 和 description 属性对应标准rss 的<title>, <link> 和 <description>元素。

  • 条目方法返回应该进入feed的item的元素。在我们的示例中是最后五个注释。

现在,我们有feed,并添加评论在视图views.py,以显示我们的评论−

from django.contrib.comments import comment

def comment(request, object_pk):
   mycomment = comment.objects.get(object_pk = object_pk)
   text = '<strong>user :</strong> %s <p>'%mycomment.user_name</p>
   text += '<strong>comment :</strong> %s <p>'%mycomment.comment</p>
   return httpresponse(text) 

我们还需要一些网址在myapp urls.py中映射 −

from myapp.feeds import dreamrealcommentsfeed
from django.conf.urls import patterns, url

urlpatterns += patterns('',
   url(r'^latest/comments/', dreamrealcommentsfeed()),
   url(r'^comment/(?p\w+)/', 'comment', name = 'comment'),
) 

当访问/myapp/latest/comments/会得到 feed −

当点击其中的一个用户名都会得到:/myapp/comment/comment_id 在您的评论视图定义之前,会得到 −

因此,定义一个rss源是 feed 类的子类,并确保这些url(一个用于访问feed,一个用于访问feed元素)的定义。 正如评论,这可以连接到您的应用程序的任何模型。



网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册