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 相关文章推荐
Tornado Web服务器多进程启动的2个方法
Aug 04 Python
python 时间戳与格式化时间的转化实现代码
Mar 23 Python
pyenv命令管理多个Python版本
Mar 26 Python
python引入导入自定义模块和外部文件的实例
Jul 24 Python
浅谈Python2、Python3相对路径、绝对路径导入方法
Jun 22 Python
Python之用户输入的实例
Jun 22 Python
python实现简单tftp(基于udp协议)
Jul 30 Python
Python两个字典键同值相加的几种方法
Mar 05 Python
应用OpenCV和Python进行SIFT算法的实现详解
Aug 21 Python
Python换行与不换行的输出实例
Feb 19 Python
Opencv python 图片生成视频的方法示例
Nov 18 Python
Python pandas读取CSV文件的注意事项(适合新手)
Jun 20 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中的时间处理
2006/10/09 PHP
关于PHP session 存储方式的详细介绍
2013/06/25 PHP
php监测数据是否成功插入到Mysql数据库的方法
2016/11/25 PHP
PHP使用PHPExcel实现批量上传到数据库的方法
2017/06/08 PHP
node.js中的querystring.unescape方法使用说明
2014/12/10 Javascript
JS实现从表格中动态删除指定行的方法
2015/03/31 Javascript
浅谈Javascript的静态属性和原型属性
2015/05/07 Javascript
解决js页面滚动效果scrollTop在FireFox与Chrome浏览器间的兼容问题的方法
2015/12/03 Javascript
基于Bootstrap+jQuery.validate实现表单验证
2016/05/30 Javascript
js判断数组key是否存在(不用循环)的简单实例
2016/08/03 Javascript
JavaScript-html标题滚动效果的简单实现
2016/09/08 Javascript
vue.js 上传图片实例代码
2017/06/22 Javascript
浅谈Vue组件及组件的注册方法
2018/08/24 Javascript
Vue 按照创建时间和当前时间显示操作(刚刚,几小时前,几天前)
2020/09/10 Javascript
vue使用transition组件动画效果的实例代码
2021/01/28 Vue.js
基于Python中capitalize()与title()的区别详解
2017/12/09 Python
用pandas中的DataFrame时选取行或列的方法
2018/07/11 Python
pyqt5实现登录界面的模板
2020/05/30 Python
pandas DataFrame行或列的删除方法的实现示例
2019/08/02 Python
Python实现迪杰斯特拉算法过程解析
2020/09/18 Python
python excel和yaml文件的读取封装
2021/01/12 Python
HTML5注册表单的自动聚焦与占位文本示例代码
2013/07/19 HTML / CSS
Notino法国:购买香水和化妆品
2019/04/15 全球购物
Scotch Porter官方网站:男士美容产品
2020/08/31 全球购物
自荐书4要点
2014/01/25 职场文书
大学班长的职责
2014/01/27 职场文书
《维生素c的故事》教学反思
2014/02/18 职场文书
培训协议书范本
2014/04/22 职场文书
公务员试用期满考核材料
2014/05/22 职场文书
走群众路线学习心得体会
2014/10/31 职场文书
2014年教学工作总结
2014/11/13 职场文书
优秀教师个人材料
2014/12/15 职场文书
大国崛起英国观后感
2015/06/02 职场文书
小学英语教学反思范文
2016/02/15 职场文书
Python中Permission denied的解决方案
2021/04/02 Python
python关于集合的知识案例详解
2021/05/30 Python