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爬取读者并制作成PDF
Mar 10 Python
python根据京东商品url获取产品价格
Aug 09 Python
Python实现获取域名所用服务器的真实IP
Oct 25 Python
理解Python中的绝对路径和相对路径
Aug 30 Python
python3 unicode列表转换为中文的实例
Oct 26 Python
Python递归函数实例讲解
Feb 27 Python
解决Django加载静态资源失败的问题
Jul 28 Python
python爬虫 爬取超清壁纸代码实例
Aug 16 Python
解析python 中/ 和 % 和 //(地板除)
Jun 28 Python
基于python图书馆管理系统设计实例详解
Aug 05 Python
Python实现简单猜数字游戏
Feb 03 Python
教你怎么用Python处理excel实现自动化办公
Apr 30 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生成xml简单实例代码
2009/12/16 PHP
Zend Framework连接Mysql数据库实例分析
2016/03/19 PHP
PHP 获取指定地区的天气实例代码
2017/02/08 PHP
PHP根据key删除数组中指定的元素
2019/02/28 PHP
laravel按天、按小时,查询数据的实例
2019/10/09 PHP
PHP数据源架构模式之表入口模式实例分析
2020/01/23 PHP
jquery append 动态添加的元素事件on 不起作用的解决方案
2015/07/30 Javascript
js绘制圆形和矩形的方法
2015/08/05 Javascript
深入浅析JavaScript中的arguments对象(强力推荐)
2016/06/03 Javascript
JavaScript  event对象整理及详细介绍
2016/10/10 Javascript
微信小程序实现点击按钮移动view标签的位置功能示例【附demo源码下载】
2017/12/06 Javascript
微信小程序使用audio组件播放音乐功能示例【附源码下载】
2017/12/08 Javascript
浅谈Webpack 是如何加载模块的
2018/05/24 Javascript
ES6中的class是如何实现的(附Babel编译的ES5代码详解)
2019/05/17 Javascript
js如何实现元素曝光上报
2019/08/07 Javascript
JS数组转字符串实现方法解析
2020/09/04 Javascript
jQuery实现二级导航菜单的示例
2020/09/30 jQuery
跟老齐学Python之玩转字符串(3)
2014/09/14 Python
在Python中用split()方法分割字符串的使用介绍
2015/05/20 Python
从头学Python之编写可执行的.py文件
2017/11/28 Python
Python实现定时备份mysql数据库并把备份数据库邮件发送
2018/03/08 Python
flask框架jinja2模板与模板继承实例分析
2019/08/01 Python
pytorch-RNN进行回归曲线预测方式
2020/01/14 Python
Python3+RIDE+RobotFramework自动化测试框架搭建过程详解
2020/09/23 Python
美国户外烹饪产品购物网站:Outdoor Cooking
2020/01/10 全球购物
怎么处理XML的中文问题
2015/03/26 面试题
自荐信的两点禁忌
2013/10/30 职场文书
银行实习生的自我评价
2013/12/09 职场文书
复核员上岗演讲稿
2014/01/05 职场文书
安全检查与奖惩制度
2014/01/23 职场文书
《唯一的听众》教学反思
2014/02/20 职场文书
初中信息技术教学计划
2015/01/22 职场文书
2015年清明节网上祭英烈留言寄语
2015/03/04 职场文书
运动会表扬稿范文
2015/05/05 职场文书
公司安全管理制度范本
2015/08/05 职场文书
Python Pandas读取Excel日期数据的异常处理方法
2022/02/28 Python