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之Import 模块
Oct 13 Python
Python使用email模块对邮件进行编码和解码的实例教程
Jul 01 Python
利用python求相邻数的方法示例
Aug 18 Python
python timestamp和datetime之间转换详解
Dec 11 Python
Python 查看list中是否含有某元素的方法
Jun 27 Python
django 将model转换为字典的方法示例
Oct 16 Python
pycharm打开命令行或Terminal的方法
Jan 16 Python
pandas的to_datetime时间转换使用及学习心得
Aug 11 Python
python字符串反转的四种方法详解
Dec 02 Python
python 日志 logging模块详细解析
Mar 31 Python
Jupyter 无法下载文件夹如何实现曲线救国
Apr 22 Python
python 基于opencv 绘制图像轮廓
Dec 11 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
《魔兽争霸3》重制版究竟重制了什么?玩家:这么糊弄真的好吗?
2020/05/04 魔兽争霸
php实现搜索一维数组元素并删除二维数组对应元素的方法
2015/07/06 PHP
总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
2016/09/09 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
PHP用PDO如何封装简单易用的DB类详解
2017/07/30 PHP
Laravel 实现Controller向blade前台模板赋值的四种方式小结
2019/10/22 PHP
如何实现动态删除javascript函数
2007/05/27 Javascript
Jquery多选框互相内容交换的实例代码
2013/07/04 Javascript
jQuery插件实现表格隔行换色且感应鼠标高亮行变色
2013/09/22 Javascript
js获得页面的高度和宽度的方法
2014/02/23 Javascript
完美兼容各大浏览器的jQuery仿新浪图文淡入淡出间歇滚动特效
2014/11/12 Javascript
jquery实现仿新浪微博评论滚动效果
2015/08/06 Javascript
javascript实现网页背景烟花效果的方法
2015/08/06 Javascript
js实现的奥运倒计时时钟效果代码
2015/12/09 Javascript
深入理解jQuery事件绑定
2016/06/02 Javascript
第四篇Bootstrap网格系统偏移列和嵌套列
2016/06/21 Javascript
JS实现HTML标签转义及反转义
2020/04/14 Javascript
Vue获取DOM元素样式和样式更改示例
2017/03/07 Javascript
js获取当前周、上一周、下一周日期
2017/03/19 Javascript
浅谈Angular文字折叠展开组件的原理分析
2017/11/24 Javascript
async/await让异步操作同步执行的方法详解
2019/11/01 Javascript
python构建基础的爬虫教学
2018/12/23 Python
Python pip替换为阿里源的方法步骤
2019/07/02 Python
Python发送邮件的实例代码讲解
2019/10/16 Python
Python使用正则实现计算字符串算式
2019/12/29 Python
Python实现一个简单的递归下降分析器
2020/08/01 Python
HTML如何让IMG自动适应DIV容器大小的实现方法
2020/02/25 HTML / CSS
美国奢侈品在线团购网站:Gilt City
2017/11/16 全球购物
餐饮采购员岗位职责
2014/03/15 职场文书
房屋买卖委托公证书
2014/04/08 职场文书
消防安全承诺书
2014/05/22 职场文书
工作检讨书怎么写
2015/01/23 职场文书
数学教师个人工作总结
2015/02/06 职场文书
MySQL Router的安装部署
2021/04/24 MySQL
Python爬虫基础之爬虫的分类知识总结
2021/05/13 Python
mysql如何查询连续记录
2022/05/11 MySQL