栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Django添加sitemap功能

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Django添加sitemap功能

sitemap是 Google 最先引入的网站地图协议,采用 XML 格式,它的作用简而言之就是优化搜索引擎的索引效率,详细的解释可以参考 维基百科。

下面介绍下如何为Django站点添加sitemap功能。

1、启用sitemap
在django的settings.py的INSTALLED_APPS中添加

'django.contrib.sites','django.contrib.sitemaps',

然后migrate数据库:

$ ./manage.py makemigrations
$ ./manage.py migrate

登陆Django后台,修改SITE为你Django网站的域名和名称,然后在settings.py中加入SITE_ID = 1来制定当前的站点。

2、添加sitemap功能

(1)创建sitemap

创建sitemap.py.内容类似下面的代码:

from django.contrib.sitemaps import Sitemapfrom blog.models import Article, Category, Tagfrom accounts.models import BlogUserfrom django.contrib.sitemaps import GenericSitemapfrom django.core.urlresolvers import reverseclass StaticViewSitemap(Sitemap):
    priority = 0.5
    changefreq = 'daily'

    def items(self):
        return ['blog:index', ]    def location(self, item):
        return reverse(item)class ArticleSiteMap(Sitemap):
    changefreq = "monthly"
    priority = "0.6"

    def items(self):
        return Article.objects.filter(status='p')    def lastmod(self, obj):
        return obj.last_mod_timeclass CategorySiteMap(Sitemap):
    changefreq = "Weekly"
    priority = "0.6"

    def items(self):
        return Category.objects.all()    def lastmod(self, obj):
        return obj.last_mod_timeclass TagSiteMap(Sitemap):
    changefreq = "Weekly"
    priority = "0.3"

    def items(self):
        return Tag.objects.all()    def lastmod(self, obj):
        return obj.last_mod_timeclass UserSiteMap(Sitemap):
    changefreq = "Weekly"
    priority = "0.3"

    def items(self):
        return BlogUser.objects.all()    def lastmod(self, obj):
        return obj.date_joined

(2)url配置

url.py中加入:

from DjangoBlog.sitemap import StaticViewSitemap, ArticleSiteMap, CategorySiteMap, TagSiteMap, UserSiteMap

sitemaps = {    'blog': ArticleSiteMap,    'Category': CategorySiteMap,    'Tag': TagSiteMap,    'User': UserSiteMap,    'static': StaticViewSitemap
}

url(r'^sitemap.xml$', sitemap, {'sitemaps': sitemaps},
        name='django.contrib.sitemaps.views.sitemap'),

至此,全部完成,运行你的django程序,浏览器输入:



作者:緣來
链接:https://www.jianshu.com/p/ceba03f14b18


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/223022.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号