前端教程:DjangoRSS

开课吧开课吧锤锤2021-08-16 11:29

Django带有聚合feed生成框架。有了它,你可以创建RSS或Atom只需继承django.contrib.syndication.views.Feed类。  

前端教程:DjangoRSS

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

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 

前端教程:DjangoRSS

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

前端教程:DjangoRSS

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

以上就是开课吧广场小编为大家整理发布的“前端教程:DjangoRSS”一文,更多Web教程相关内容尽在开课吧广场Web教程频道!

免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用。如涉及版权问题,请联系本站管理员予以更改或删除。
有用
分享
全部评论快来秀出你的观点
登录 后可发表观点…
发表
暂无评论,快来抢沙发!
云开发实战特训营