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类继承与子类实例初始化用法分析
Apr 17 Python
在Python的Django框架中加载模版的方法
Jul 16 Python
使用Python的Bottle框架写一个简单的服务接口的示例
Aug 25 Python
详解python的几种标准输出重定向方式
Aug 15 Python
windows及linux环境下永久修改pip镜像源的方法
Nov 28 Python
Python3实现带附件的定时发送邮件功能
Dec 22 Python
Python简单生成随机数的方法示例
Mar 31 Python
Python破解BiliBili滑块验证码的思路详解(完美避开人机识别)
Feb 17 Python
解决jupyter notebook import error但是命令提示符import正常的问题
Apr 15 Python
安装python3.7编译器后如何正确安装opnecv的方法详解
Jun 16 Python
解决pytorch多GPU训练保存的模型,在单GPU环境下加载出错问题
Jun 23 Python
python Django框架快速入门教程(后台管理)
Jul 21 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
杏林同学录(九)
2006/10/09 PHP
PHP把数字转成人民币大写的函数分享
2014/06/30 PHP
关于laravel后台模板laravel-admin select框的使用详解
2019/10/03 PHP
基于PHP实现生成随机水印图片
2020/12/09 PHP
JS 时间显示效果代码
2009/08/23 Javascript
jquery中animate动画积累的解决方法
2013/10/05 Javascript
js获取表格的行数和列数的方法
2015/10/23 Javascript
轻松掌握JavaScript状态模式
2016/09/07 Javascript
jquery实现异步加载图片(懒加载图片一种方式)
2017/04/24 jQuery
angular实现IM聊天图片发送实例
2017/05/08 Javascript
详解Vue中过度动画效果应用
2017/05/25 Javascript
Vue.js结合Ueditor富文本编辑器的实例代码
2017/07/11 Javascript
Vue的土著指令和自定义指令实例详解
2018/02/04 Javascript
JavaScript中set与get方法用法示例
2018/08/15 Javascript
微信小程序提交form操作示例
2018/12/30 Javascript
[51:52]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
在Python的setuptools框架下生成egg的教程
2015/04/13 Python
Python发送email的3种方法
2015/04/28 Python
Python中利用sqrt()方法进行平方根计算的教程
2015/05/15 Python
python机器学习理论与实战(五)支持向量机
2018/01/19 Python
python中join()方法介绍
2018/10/11 Python
python tkinter界面居中显示的方法
2018/10/11 Python
Python OpenCV读取png图像转成jpg图像存储的方法
2018/10/28 Python
Python单元测试工具doctest和unittest使用解析
2019/09/02 Python
Django之使用celery和NGINX生成静态页面实现性能优化
2019/10/08 Python
使用CSS3实现圆角,阴影,透明
2014/12/23 HTML / CSS
轻松掌握CSS3中的字体大小单位rem的使用方法
2016/05/24 HTML / CSS
高考自主招生自荐信
2013/10/20 职场文书
部队党性分析材料
2014/02/16 职场文书
英语故事演讲稿
2014/04/29 职场文书
第二课堂活动总结
2014/05/07 职场文书
2014小学教师年度考核工作总结
2014/12/03 职场文书
民间借贷借条范本
2015/05/25 职场文书
小学三年级数学教学反思
2016/02/16 职场文书
七年级生物教学反思
2016/02/20 职场文书
2016年九九重阳节活动总结
2016/04/01 职场文书