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脚本在Linux下实现部分Bash Shell的教程
Apr 17 Python
Django与遗留的数据库整合的方法指南
Jul 24 Python
Python导出DBF文件到Excel的方法
Jul 25 Python
用pickle存储Python的原生对象方法
Apr 28 Python
Python continue继续循环用法总结
Jun 10 Python
python 使用值来排序一个字典的方法
Nov 16 Python
pandas删除行删除列增加行增加列的实现
Jul 06 Python
打包PyQt5应用时的注意事项
Feb 14 Python
python3安装OCR识别库tesserocr过程图解
Apr 02 Python
Python实现哲学家就餐问题实例代码
Nov 09 Python
Python存储读取HDF5文件代码解析
Nov 25 Python
用python读取xlsx文件
Dec 17 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中如何在有限的内存中读取大文件
2013/07/02 PHP
Thinkphp和Bootstrap结合打造个性的分页样式(推荐)
2016/08/01 PHP
ThinkPHP5.1的权限控制怎么写?分享一个AUTH权限控制
2021/03/09 PHP
JS 容错处理代码, 屏蔽错误信息
2021/03/09 Javascript
javascript 实用的文字链提示框效果
2010/06/30 Javascript
jquery 插件学习(五)
2012/08/06 Javascript
jQuery判断iframe中元素是否存在的方法
2013/05/11 Javascript
js自动生成对象的属性示例代码
2013/10/28 Javascript
在Iframe中获取父窗口中表单的值(示例代码)
2013/11/22 Javascript
如何书写高质量jQuery代码(使用jquery性能问题)
2014/06/30 Javascript
jQuery中toggleClass()方法用法实例
2015/01/05 Javascript
C++中的string类的用法小结
2015/08/07 Javascript
php基于redis处理session的方法
2016/03/14 Javascript
JQuery validate 验证一个单独的表单元素实例
2017/02/17 Javascript
深入理解AngularJS中的ng-bind-html指令
2017/03/27 Javascript
详解JavaScript数组过滤相同元素的5种方法
2017/05/23 Javascript
基于 flexible 的 Vue 组件:Toast -- 显示框效果
2017/12/26 Javascript
JavaScript中Array方法你该知道的正确打开方法
2018/09/11 Javascript
Vue 报错TypeError: this.$set is not a function 的解决方法
2018/12/17 Javascript
详解VUE项目中安装和使用vant组件
2019/04/28 Javascript
vue实现路由懒加载的3种方法示例
2020/09/01 Javascript
[02:41]DOTA2英雄基础教程 冥魂大帝
2014/01/16 DOTA
Python的ORM框架SQLAlchemy入门教程
2014/04/28 Python
python通过urllib2获取带有中文参数url内容的方法
2015/03/13 Python
Python 正则表达式的高级用法
2016/12/04 Python
python代码实现ID3决策树算法
2017/12/20 Python
Python实现两个list求交集,并集,差集的方法示例
2018/08/02 Python
浅谈Pandas Series 和 Numpy array中的相同点
2019/06/28 Python
python中property属性的介绍及其应用详解
2019/08/29 Python
python函数中将变量名转换成字符串实例
2020/05/11 Python
Marlies Dekkers内衣法国官方网上商店:国际知名的荷兰内衣品牌
2019/03/18 全球购物
财务会计专业毕业生自荐信
2013/10/02 职场文书
出纳员岗位职责
2014/03/13 职场文书
内勤主管岗位职责
2014/04/03 职场文书
协议书范文
2015/01/27 职场文书
Python基于百度API识别并提取图片中文字
2021/06/27 Python