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根据时间生成mongodb的ObjectId的方法
Mar 13 Python
Python的动态重新封装的教程
Apr 11 Python
Python编程中实现迭代器的一些技巧小结
Jun 21 Python
Python+matplotlib+numpy绘制精美的条形统计图
Jan 02 Python
使用Python编写Prometheus监控的方法
Oct 15 Python
python区块及区块链的开发详解
Jul 03 Python
python-视频分帧&多帧合成视频实例
Dec 10 Python
如何使用Python多线程测试并发漏洞
Dec 18 Python
Python实现AI自动抠图实例解析
Mar 05 Python
python计算Content-MD5并获取文件的Content-MD5值方式
Apr 03 Python
Python如何转换字符串大小写
Jun 04 Python
Python 绘制多因子柱状图
May 11 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+mysql查询实现无限下级分类树输出示例
2016/10/03 PHP
php arsort 数组降序排序详细介绍
2016/11/17 PHP
thinkphp5实现微信扫码支付
2019/12/23 PHP
jQuery实现类似淘宝购物车全选状态示例
2013/06/26 Javascript
jquery按回车提交数据的代码示例
2013/11/05 Javascript
简单的ajax连接库分享(不用jquery的ajax)
2014/01/19 Javascript
javascript实现图片延迟加载方法汇总(三种方法)
2015/08/27 Javascript
js中对函数设置默认参数值的3种方法
2015/10/23 Javascript
jquery实现左右无缝轮播图
2020/07/31 Javascript
浅析JavaScript Array和string的转换(推荐)
2016/05/20 Javascript
angularjs指令之绑定策略(@、=、&)
2017/04/13 Javascript
jQuery基于cookie实现换肤功能实例
2017/10/14 jQuery
微信小程序获取手机号授权用户登录功能
2017/11/09 Javascript
解决vue axios的封装 请求状态的错误提示问题
2018/09/25 Javascript
微信小程序如何实现精确的日期时间选择器
2020/01/21 Javascript
深入了解Vue3模板编译原理
2020/11/19 Vue.js
基于ajax实现上传图片代码示例解析
2020/12/03 Javascript
微信小程序选择图片控件
2021/01/19 Javascript
[03:04]DOTA2英雄基础教程 影魔
2013/12/11 DOTA
python pdb调试方法分享
2014/01/21 Python
python控制台中实现进度条功能
2015/11/10 Python
一个基于flask的web应用诞生(1)
2017/04/11 Python
Python版名片管理系统
2018/11/30 Python
Python3 执行系统命令并获取实时回显功能
2019/07/09 Python
基于python3 pyQt5 QtDesignner实现窗口化猜数字游戏功能
2019/07/15 Python
Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析
2019/08/13 Python
Pycharm 字体大小调整设置的方法实现
2019/09/27 Python
Python类绑定方法及非绑定方法实例解析
2020/10/09 Python
基于CSS3的CSS 多栏(Multi-column)实现瀑布流源码分享
2014/06/11 HTML / CSS
纯CSS3实现的8种Loading动画效果
2014/07/05 HTML / CSS
CSS3实现千变万化的文字阴影text-shadow效果设计
2016/04/26 HTML / CSS
学生会离职感言
2014/02/11 职场文书
教师网络培训感言
2014/03/09 职场文书
2015年乡镇安全生产工作总结
2015/05/19 职场文书
2019年公司卫生管理制度样本
2019/08/21 职场文书
纯CSS实现酷炫的霓虹灯效果
2021/04/13 HTML / CSS