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中index()和seek()的用法(详解)
Apr 27 Python
Python遍历文件夹和读写文件的实现方法
May 10 Python
python处理Excel xlrd的简单使用
Sep 12 Python
python遍历文件夹,指定遍历深度与忽略目录的方法
Jul 11 Python
python3.5绘制随机漫步图
Aug 27 Python
从运行效率与开发效率比较Python和C++
Dec 14 Python
python使用minimax算法实现五子棋
Jul 29 Python
python 怎样将dataframe中的字符串日期转化为日期的方法
Sep 26 Python
python中对_init_的理解及实例解析
Oct 11 Python
Python实现报警信息实时发送至邮箱功能(实例代码)
Nov 11 Python
解决pycharm下pyuic工具使用的问题
Apr 08 Python
Python利用pip安装tar.gz格式的离线资源包
Sep 14 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仿博客园 个人博客(1) 数据库与界面设计
2013/07/05 PHP
使用php计算排列组合的方法
2013/11/13 PHP
PHP实现把文本中的URL转换为链接的auolink()函数分享
2014/07/29 PHP
模仿JQuery sortable效果 代码有错但值得看看
2009/11/05 Javascript
JQuery的一些小应用收集
2010/03/27 Javascript
jQuery 操作option的实现代码
2011/03/03 Javascript
Jquery css函数用法(判断标签是否拥有某属性)
2011/05/28 Javascript
HTML5之lang属性与dir属性的详解
2013/06/19 Javascript
jquery ajax中使用jsonp的限制解决方法
2013/11/22 Javascript
javascript的propertyIsEnumerable()方法使用介绍
2014/04/09 Javascript
微信小程序 slider的简单实例
2017/04/19 Javascript
jQuery md5加密插件jQuery.md5.js用法示例
2018/08/24 jQuery
VUE搭建手机商城心得和遇到的坑
2019/02/21 Javascript
对layui中table组件工具栏的使用详解
2019/09/19 Javascript
Layer UI表格列日期格式化及取消自动填充日期的实现方法
2020/05/10 Javascript
解决Vue的文本编辑器 vue-quill-editor 小图标样式排布错乱问题
2020/08/03 Javascript
[03:33]TI9战队采访 - Infamous
2019/08/20 DOTA
布同自制Python函数帮助查询小工具
2011/03/13 Python
Python学习笔记之解析json的方法分析
2017/04/21 Python
Python scikit-learn 做线性回归的示例代码
2017/11/01 Python
python机器学习理论与实战(二)决策树
2018/01/19 Python
python3安装crypto出错及解决方法
2019/07/30 Python
python3实现微型的web服务器
2019/09/03 Python
Python爬虫使用浏览器cookies:browsercookie过程解析
2019/10/22 Python
Django自带的加密算法及加密模块详解
2019/12/03 Python
python读取yaml文件后修改写入本地实例
2020/04/27 Python
python mysql自增字段AUTO_INCREMENT值的修改方式
2020/05/18 Python
高清安全摄像头系统:Lorex Technology
2018/07/20 全球购物
绩效工资分配方案
2014/01/18 职场文书
乡镇干部十八大感言
2014/02/17 职场文书
荷叶母亲教学反思
2014/04/30 职场文书
布达拉宫导游词
2015/02/02 职场文书
体育教师个人总结
2015/02/09 职场文书
农村婚礼司仪主持词
2015/06/29 职场文书
用python自动生成日历
2021/04/24 Python
《极主夫道》真人电影正式预告 定档6月3日上映
2022/04/05 日漫