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使用xauth方式登录饭否网然后发消息
Apr 11 Python
Python解决鸡兔同笼问题的方法
Dec 20 Python
浅析Python中的for 循环
Jun 09 Python
解决Django migrate No changes detected 不能创建表的问题
May 27 Python
Python查看微信撤回消息代码
Jun 07 Python
深度辨析Python的eval()与exec()的方法
Mar 26 Python
Python实现语音识别和语音合成功能
Sep 20 Python
Python垃圾回收机制三种实现方法
Apr 27 Python
python开发前景如何
Jun 11 Python
一文读懂Python 枚举
Aug 25 Python
selenium如何定位span元素的实现
Jan 13 Python
Python Django 后台管理之后台模型属性详解
Apr 25 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
JavaScript语法着色引擎(demo及打包文件下载)
2007/06/13 Javascript
javascript优先加载笔记代码
2008/09/30 Javascript
检测是否已安装 .NET Framework 3.5的js脚本
2009/02/14 Javascript
jQuery编写widget的一些技巧分享
2010/10/28 Javascript
node.js中的Socket.IO使用实例
2014/11/04 Javascript
JavaScript中用于生成随机数的Math.random()方法
2015/06/15 Javascript
jQuery实现图片渐入渐出切换展示效果
2015/08/15 Javascript
基于jQuery实现的扇形定时器附源码下载
2015/10/20 Javascript
jQuery AjaxUpload 上传图片代码
2016/02/02 Javascript
使用jquery获取url以及jquery获取url参数的实现方法
2016/05/25 Javascript
js精准的倒计时函数分享
2016/06/29 Javascript
用vue封装插件并发布到npm的方法步骤
2017/10/18 Javascript
使用ajax的post同步执行(实现方法)
2017/12/21 Javascript
Element-ui之ElScrollBar组件滚动条的使用方法
2018/09/14 Javascript
详解Vue 全局变量,局部变量
2019/04/17 Javascript
VUE前后端学习tab写法实例
2019/08/06 Javascript
[08:38]DOTA2-DPC中国联赛 正赛 VG vs Elephant 选手采访
2021/03/11 DOTA
[08:54]DOTA2-DPC中国联赛 正赛 Aster vs LBZS 选手采访
2021/03/11 DOTA
Python urllib模块urlopen()与urlretrieve()详解
2013/11/01 Python
python OpenCV学习笔记实现二维直方图
2018/02/08 Python
Django学习笔记之ORM基础教程
2018/03/27 Python
使用Python监控文件内容变化代码实例
2018/06/04 Python
python读取几个G的csv文件方法
2019/01/07 Python
使用celery执行Django串行异步任务的方法步骤
2019/06/06 Python
Python 在OpenCV里实现仿射变换—坐标变换效果
2019/08/30 Python
python3-flask-3将信息写入日志的实操方法
2019/11/12 Python
使用CSS3制作倾斜导航条和毛玻璃效果
2017/09/12 HTML / CSS
香港个人化生活购物网站:Ballyhoo Limited
2016/09/10 全球购物
Wedgwood美国官网:英国骨瓷,精美礼品及家居装饰
2018/02/17 全球购物
澳大利亚百货商店中销量第一的商务衬衫品牌:Van Heusen
2018/07/26 全球购物
切尔西足球俱乐部官方网上商店:Chelsea FC
2019/06/17 全球购物
幼儿园教师培训方案
2014/02/04 职场文书
售房协议书范本2014
2014/10/23 职场文书
python for循环赋值问题
2021/06/03 Python
Python装饰器的练习题
2021/11/23 Python
mysql查看表结构的三种方法总结
2022/07/07 MySQL