Django Sitemap 应用实例
sitemap 主要是描述了网站的结构, 使得搜索引擎更容易的理解网站得内容。
具体 sitemap 生成可以参考 sietmaps.org
Django sitemap 的建立:
-
在 setting.py 的 INSTALLED_APPS 中增加 'django.contrib.sitemaps'
-
在你的 TEMPLATE_LOADERS 中已经加载 'django.template.loaders.app_directories.Loader'
-
确定你已经安装了 site framework
TEMPLATE_LOADERS = (
'django.template.loaders.app_directories.Loader',
)
INSTALLED_APPS = {
'django.contrib.sitemaps',
}
为你的站点建立 sitemap。架设你的站点是一个 blog 为主的网站,那么你需要在你的 views.py 中添加如下代码:
from django.contrib.sitemaps import Sitemap
from blog.models import Blog
class BlogSitemap(Sitemap):
changefreq = 'hourly'
priority = 0.5
def items(self):
return Blog.objects.all()
def lastmod(self, obj):
return obj.create_time
def location(self, obj):
return "/blog/%d" % obj.pk
注意:
- changefreq 和 priority 是 Sitemap 类的两个属性。 changefreq 是页面改变的频率。 priority 是优先级
- items() 是 sitemap 对象的列表
- lastmod 返回一个 Python datetime 对象
- location 可以制定对象的URI。默认 location() 调用 get_absolute_url()
最后在 urls.py 中加入如下代码:
sitemaps = {
'blog': BlogSitemap,
}
urlpatterns += (
url(r'sitemap\.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps':sitempas}),
)