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 相关文章推荐
django使用图片延时加载引起后台404错误
Apr 18 Python
Python编程实现线性回归和批量梯度下降法代码实例
Jan 04 Python
Python彻底删除文件夹及其子文件方式
Dec 23 Python
利用python实现.dcm格式图像转为.jpg格式
Jan 13 Python
使用python实现CGI环境搭建过程解析
Apr 28 Python
matplotlib 画双轴子图无法显示x轴的解决方法
Jul 27 Python
零基础学python应该从哪里入手
Aug 11 Python
浅析Python中字符串的intern机制
Oct 03 Python
关于python中导入文件到list的问题
Oct 31 Python
python 爬虫之selenium可视化爬虫的实现
Dec 04 Python
Python经典五人分鱼实例讲解
Jan 04 Python
Python趣味实战之手把手教你实现举牌小人生成器
Jun 07 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水印
2007/03/16 PHP
php实现扫描二维码根据浏览器类型访问不同下载地址
2014/10/15 PHP
Yii2框架实现登陆添加验证码功能示例
2018/07/12 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
2020/03/23 PHP
有关于JS构造函数的重载和工厂方法
2013/04/07 Javascript
IE的事件传递-event.cancelBubble示例介绍
2014/01/12 Javascript
jquery实现不同大小浏览器使用不同的css样式表的方法
2014/04/02 Javascript
Javascript获取CSS伪元素属性的实现代码
2014/09/28 Javascript
基于javascript制作微信聊天面板
2020/08/09 Javascript
vuejs在解析时出现闪烁的原因及防止闪烁的方法
2016/09/19 Javascript
实例解析jQuery中如何取消后续执行内容
2016/12/01 Javascript
详谈angularjs中路由页面强制更新的问题
2017/04/24 Javascript
深入koa-bodyparser原理解析
2019/01/16 Javascript
layui问题之模拟table表格中的选中按钮选中事件的方法
2019/09/20 Javascript
功能完善的小程序日历组件的实现
2020/03/31 Javascript
JavaScript eval()函数定义及使用方法详解
2020/07/07 Javascript
[00:59]DOTA2英雄背景故事——上古巨神
2020/06/28 DOTA
[48:24]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第一场 12.09
2020/12/12 DOTA
Python编写百度贴吧的简单爬虫
2015/04/02 Python
python模拟登录并且保持cookie的方法详解
2017/04/04 Python
Numpy掩码式数组详解
2018/04/17 Python
django中模板的html自动转意方法
2018/05/27 Python
详解python3中tkinter知识点
2018/06/21 Python
Python闭包思想与用法浅析
2018/12/27 Python
python KNN算法实现鸢尾花数据集分类
2019/10/24 Python
Python的赋值、深拷贝与浅拷贝的区别详解
2020/02/12 Python
python实现超级玛丽游戏
2020/03/18 Python
python爬虫爬取淘宝商品比价(附淘宝反爬虫机制解决小办法)
2020/12/03 Python
使用CSS3来匹配横屏竖屏的简单方法
2015/08/04 HTML / CSS
英国百安居装饰建材网上超市:B&Q
2016/09/13 全球购物
中秋节礼品促销方案
2014/02/02 职场文书
庆元旦广播稿
2014/02/10 职场文书
本科应届生自荐信
2014/06/29 职场文书
群众路线教育实践活动个人对照检查材料思想汇报(社区班子)
2014/10/06 职场文书
公司开除员工通知
2015/04/22 职场文书
2015年机关党委工作总结
2015/05/23 职场文书