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对象类型及其运算方法(详解)
Jul 05 Python
读取本地json文件,解析json(实例讲解)
Dec 06 Python
python爬虫获取京东手机图片的图文教程
Dec 29 Python
python实现生命游戏的示例代码(Game of Life)
Jan 24 Python
简单实现python聊天程序
Apr 01 Python
浅析python中的迭代与迭代对象
Oct 08 Python
Python matplotlib通过plt.scatter画空心圆标记出特定的点方法
Dec 13 Python
Python2 Selenium元素定位的实现(8种)
Feb 25 Python
Python计算一个点到所有点的欧式距离实现方法
Jul 04 Python
Python多进程multiprocessing、进程池用法实例分析
Mar 24 Python
python 通过 pybind11 使用Eigen加速代码的步骤
Dec 07 Python
python math模块的基本使用教程
Jan 16 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 函数中使用static的说明
2012/06/01 PHP
PHP实现简单实用的验证码类
2015/07/29 PHP
PHP面向对象之领域模型+数据映射器实例(分析)
2017/06/21 PHP
在textarea中显示html页面的javascript代码
2007/04/20 Javascript
IE与Firefox下javascript getyear年份的兼容性写法
2007/12/20 Javascript
for 循环性能比较 提高for循环的效率
2009/03/19 Javascript
JavaScript数据类型详解
2015/04/01 Javascript
Underscore源码分析
2015/12/30 Javascript
JS Array创建及concat()split()slice()的使用方法
2016/06/03 Javascript
Javascript中作用域的详细介绍
2016/10/06 Javascript
Vue.js实战之通过监听滚动事件实现动态锚点
2017/04/04 Javascript
nginx+vue.js实现前后端分离的示例代码
2018/02/12 Javascript
vue-cli项目根据线上环境分别打出测试包和生产包
2018/05/23 Javascript
微信小程序搜索功能(附:小程序前端+PHP后端)
2019/02/28 Javascript
微信小程序 setData 对 data数据影响问题
2019/04/18 Javascript
javascript实现导航栏分页效果
2019/06/27 Javascript
VueJS 取得 URL 参数值的方法
2019/07/19 Javascript
js最全的数组的降维5种办法(小结)
2020/04/28 Javascript
JS如何监听div的resize事件详解
2020/12/03 Javascript
[04:45]DOTA2上海特级锦标赛主赛事第四日RECAP
2016/03/06 DOTA
python模块之re正则表达式详解
2017/02/03 Python
Python实现删除文件中含“指定内容”的行示例
2017/06/09 Python
Python 快速实现CLI 应用程序的脚手架
2017/12/05 Python
Python实现Event回调机制的方法
2019/02/13 Python
python实现移位加密和解密
2019/03/22 Python
python Jupyter运行时间实例过程解析
2019/12/13 Python
世界上第一个水枕头:Mediflow
2018/12/06 全球购物
学生的自我鉴定范文
2013/10/24 职场文书
公务员职务工作的自我评价
2013/11/01 职场文书
门卫工作岗位职责
2013/12/17 职场文书
警察先进个人事迹材料
2014/05/16 职场文书
销售员试用期自我评价
2014/09/15 职场文书
党的群众路线教育实践活动个人对照检查材料
2014/09/22 职场文书
教育教学工作反思
2016/02/24 职场文书
如何用JavaScript实现一个数组惰性求值库
2021/05/05 Javascript
微软发布Windows 11今年最大更新22H2(附 ISO 镜像官方下载)
2022/09/23 数码科技