目录
为你的站点添加一个站点地图setting.py文件做站点地图相关设置数据表迁移添加我们的站点地图(sitemap)URL。编辑项目中的主*urls.py文件,如下所示添加站点地图(sitemap)Django Feed 类做RSS应用的根目录下新建一个 feeds.py 文件以存放和 RSS 功能相关的代码.然后在feeds.py中写入如下代码:添加url修改模板RSS测试插件
为你的站点添加一个站点地图
Django自带一个站点地图(sitemap)框架,允许你为你的站点动态生成站点地图(sitemap)。一个站点地图(sitemap)是一个xml文件,它会告诉搜索引擎你的网站中存在的页面,它们的关联和它们更新的频率。使用站点地图(sitemap),你可以帮助网络爬虫(crawlers)来对你的网站内容进行索引和标记。
setting.py文件做站点地图相关设置
SITE_ID = 1
# Application definition
INSTALLED_APPS = (
# ...
'django.contrib.sites',
'django.contrib.sitemaps',
)
数据表迁移
python manage.py migrate
在应用下新建sitemaps.py文件
from django.contrib.sitemaps import Sitemap
from .models import Post
class PostSitemap(Sitemap):
changefreq = 'weekly'
priority = 0.9
def items(self):
return Post.published.all()
def lastmod(self, obj):
return obj.publish
添加我们的站点地图(sitemap)URL。编辑项目中的主*urls.py文件,如下所示添加站点地图(sitemap)
from django.conf.urls import include, url
from django.contrib import admin
from django.contrib.sitemaps.views import sitemap
from blog.sitemaps import PostSitemap
sitemaps = {
'posts': PostSitemap,
}
urlpatterns = [
...
url(r'^sitemap.xml$', sitemap, {'sitemaps': sitemaps},
name='django.contrib.sitemaps.views.sitemap'),
]
Django Feed 类做RSS
应用的根目录下新建一个 feeds.py 文件以存放和 RSS 功能相关的代码.然后在feeds.py中写入如下代码:
from django.contrib.syndication.views import Feed
from .models import Post
class AllPostRssFeed(Feed):
# 显示在聚合阅读器上的标题
title = "千峰博客"
# 通过聚合阅读器跳转到网址的地址
link = '/index/'
# 显示在聚合阅读器上的描述信息
description = "千峰博客项目演示测试"
# 需要显示的内容条目
def items(self):
return Post.objects.all()
# 聚合器中显示的内容条目的标题
def item_title(self, item):
return '[%s]%s' % (item.category, item.title)
# 聚合器中显示的内容条目的描述
def item_description(self, item):
return item.body
添加url
#接下来就是指定 URL 模式,让人们访问这个 URL 后就可以看到 Feed 生成的内容。
#通常 RSS 的 URL 配置直接写在项目的 urls.py 文件里。
#项目的urls.py中:
#记得在顶部引入 AllPostsRssFeed
url(r'^all/rss/$', AllPostRssFeed(), name='rss'),
修改模板
#简单修改一下基模板,把 RSS 的 URL 添加到模板中,放在标签云下面:
#【templates/base.html】
<div class="rss">
<a href="{% url 'rss' %}"><span class="ion-social-rss-outline"></span> RSS 订阅</a>
</div>
RSS测试插件
使用360浏览器,安装一个RSS Feed Reader应用。
订阅我们的rss地址即可:http://127.0.0.1:8000/all/rss/