Django添加sitemap的方法示例
sitemap是Google最先引入的网站地图协议,采用XML格式,它的作用简而言之就是优化搜索引擎的索引效率,详细的解释可以参考百度百科。
下面介绍下如何为Django站点添加sitemap功能。
1、启用sitemap
在django的settings.py的INSTALLED_APPS中添加
'django.contrib.sites', 'django.contrib.sitemaps',
然后migrate数据库:
$./manage.pymakemigrations $./manage.pymigrate
登陆Django后台,修改SITE为你Django网站的域名和名称,然后在settings.py中加入SITE_ID=1来制定当前的站点。
2、添加sitemap功能
(1)创建sitemap
创建sitemap.py.内容类似下面的代码:
fromdjango.contrib.sitemapsimportSitemap fromblog.modelsimportArticle,Category,Tag fromaccounts.modelsimportBlogUser fromdjango.contrib.sitemapsimportGenericSitemap fromdjango.core.urlresolversimportreverse classStaticViewSitemap(Sitemap): priority=0.5 changefreq='daily' defitems(self): return['blog:index',] deflocation(self,item): returnreverse(item) classArticleSiteMap(Sitemap): changefreq="monthly" priority="0.6" defitems(self): returnArticle.objects.filter(status='p') deflastmod(self,obj): returnobj.last_mod_time classCategorySiteMap(Sitemap): changefreq="Weekly" priority="0.6" defitems(self): returnCategory.objects.all() deflastmod(self,obj): returnobj.last_mod_time classTagSiteMap(Sitemap): changefreq="Weekly" priority="0.3" defitems(self): returnTag.objects.all() deflastmod(self,obj): returnobj.last_mod_time classUserSiteMap(Sitemap): changefreq="Weekly" priority="0.3" defitems(self): returnBlogUser.objects.all() deflastmod(self,obj): returnobj.date_joined
(2)url配置
url.py中加入:
fromDjangoBlog.sitemapimportStaticViewSitemap,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程序,浏览器输入:http://127.0.0.1:8000/sitemap.xml
就可以看见已经成功生成了,然后就可以提交这个地址给搜索引擎。我的网站的sitemap的地址是:https://www.fkomm.cn/sitemap.xml
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。