Django添加sitemap的方法示例


Posted in Python onAugust 06, 2018

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 Sitemap
from blog.models import Article, Category, Tag
from accounts.models import BlogUser
from django.contrib.sitemaps import GenericSitemap
from django.core.urlresolvers import reverse

class 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_time


class CategorySiteMap(Sitemap):
 changefreq = "Weekly"
 priority = "0.6"

 def items(self):
  return Category.objects.all()

 def lastmod(self, obj):
  return obj.last_mod_time


class TagSiteMap(Sitemap):
 changefreq = "Weekly"
 priority = "0.3"

 def items(self):
  return Tag.objects.all()

 def lastmod(self, obj):
  return obj.last_mod_time


class 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程序,浏览器输入:http://127.0.0.1:8000/sitemap.xml

就可以看见已经成功生成了,然后就可以提交这个地址给搜索引擎。 我的网站的sitemap的地址是:https://www.fkomm.cn/sitemap.xml

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python内建数据结构详解
Feb 03 Python
python编写朴素贝叶斯用于文本分类
Dec 21 Python
基于Python实现的ID3决策树功能示例
Jan 02 Python
浅谈numpy库的常用基本操作方法
Jan 09 Python
python 给DataFrame增加index行名和columns列名的实现方法
Jun 08 Python
Python发送邮件测试报告操作实例详解
Dec 08 Python
在win64上使用bypy进行百度网盘文件上传功能
Jan 02 Python
python3爬取torrent种子链接实例
Jan 16 Python
如何提高python 中for循环的效率
Apr 15 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
Apr 22 Python
python音频处理的示例详解
Dec 23 Python
关于Python使用turtle库画任意图的问题
Apr 01 Python
python中scikit-learn机器代码实例
Aug 05 #Python
解决使用pycharm提交代码时冲突之后文件丢失找回的方法
Aug 05 #Python
Python字符串、整数、和浮点型数相互转换实例
Aug 04 #Python
python与caffe改变通道顺序的方法
Aug 04 #Python
Python爬虫PyQuery库基本用法入门教程
Aug 04 #Python
python list转矩阵的实例讲解
Aug 04 #Python
Python 生成 -1~1 之间的随机数矩阵方法
Aug 04 #Python
You might like
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
2011/08/03 PHP
解析php取整的几种方式
2013/06/25 PHP
php中time()和mktime()方法的区别
2013/09/28 PHP
php获取从百度搜索进入网站的关键词的详细代码
2014/01/08 PHP
PHP中几个可以提高运行效率的代码写法、技巧分享
2014/08/21 PHP
firefox 和 ie 事件处理的细节,研究,再研究 书写同时兼容ie和ff的事件处理代码
2007/04/12 Javascript
javascript下数值型比较难点说明
2010/06/07 Javascript
鼠标滑在标题上显示图片的JS代码
2013/11/19 Javascript
js实现字符串的16进制编码不加密
2014/04/25 Javascript
Angular中$compile源码分析
2016/01/28 Javascript
在JavaScript中使用JSON数据
2016/02/15 Javascript
移动端js图片查看器
2016/11/17 Javascript
基于js实现二级下拉联动
2016/12/17 Javascript
微信小程序 PHP后端form表单提交实例详解
2017/01/12 Javascript
Node.js命令行/批处理中如何更改Linux用户密码浅析
2018/07/22 Javascript
详解微信小程序调起键盘性能优化
2018/07/24 Javascript
微信小程序出现wx.getLocation再次授权问题的解决方法分析
2019/01/16 Javascript
vue keep-alive列表页缓存 详情页返回上一页不刷新,定位到之前位置
2019/11/26 Javascript
js中addEventListener()与removeEventListener()用法案例分析
2020/03/02 Javascript
vuex分模块后,实现获取state的值
2020/07/26 Javascript
使用React-Router实现前端路由鉴权的示例代码
2020/07/26 Javascript
[01:05:24]Ti4 冒泡赛第二天 iG vs NEWBEE 3
2014/07/15 DOTA
Python中if __name__ == "__main__"详细解释
2014/10/21 Python
python开发之list操作实例分析
2016/02/22 Python
python 时间戳与格式化时间的转化实现代码
2016/03/23 Python
python socket多线程通讯实例分析(聊天室)
2016/04/06 Python
python3解析库pyquery的深入讲解
2018/06/26 Python
Python爬虫之正则表达式的使用教程详解
2018/10/25 Python
python实现差分隐私Laplace机制详解
2019/11/25 Python
Django中和时区相关的安全问题详解
2020/10/12 Python
Python 可视化神器Plotly详解
2020/12/26 Python
CSS3中颜色线性渐变实战
2015/07/18 HTML / CSS
Marc Jacobs官方网站:美国奢侈品牌
2017/08/29 全球购物
加拿大领先的冒险和户外零售商:Atmosphere
2017/12/19 全球购物
2021年pycharm的最新安装教程及基本使用图文详解
2021/04/03 Python
Nginx+Tomcat负载均衡多实例详解
2022/04/11 Servers