Django添加sitemap的方法示例

 更新时间:2018年08月06日 08:23:27   作者:緣來  
这篇文章主要介绍了Django添加sitemap的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

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爬虫lxml库解析xpath网页过程示例

    python爬虫lxml库解析xpath网页过程示例

    这篇文章主要为大家介绍了python爬虫lxml库解析xpath网页的过程示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • python3.5安装python3-tk详解

    python3.5安装python3-tk详解

    这篇文章主要介绍了python3.5安装python3-tk详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • 使用Python中的Argparse实现将列表作为命令行参数传递

    使用Python中的Argparse实现将列表作为命令行参数传递

    Argparse 是一个 Python 库,用于以用户友好的方式解析命令行参数,本文我们将讨论如何使用 Python 中的 Argparse 库将列表作为命令行参数传递,感兴趣的可以了解下
    2023-08-08
  • 一文带你精通Python中*args和**kwargs的应用技巧

    一文带你精通Python中*args和**kwargs的应用技巧

    如果能在Python中创建适应不同场景的函数,而无需每次都重写它们,会使得操作简洁方便,这就是*args和**kwargs的魔力所在,下面我们就来看看它们的具体一些应用技巧吧
    2024-03-03
  • django中间件及自定义中间件的实现方法

    django中间件及自定义中间件的实现方法

    中间件就是在目标和结果之间进行的额外处理过程,在Django中就是request和response之间进行的处理,相对来说实现起来比较简单,这篇文章主要介绍了django中间件以及自定义中间件 ,需要的朋友可以参考下
    2023-06-06
  • python opencv 简单阈值算法的实现

    python opencv 简单阈值算法的实现

    这篇文章主要介绍了python opencv 简单阈值算法的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • pip install 安装路径修改的方法步骤

    pip install 安装路径修改的方法步骤

    本文主要介绍了pip install 安装路径修改的方法步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • 在python plt图表中文字大小调节的方法

    在python plt图表中文字大小调节的方法

    今天小编就为大家分享一篇在python plt图表中文字大小调节的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • Python使用difflib标准库实现查找文本间的差异

    Python使用difflib标准库实现查找文本间的差异

    在文本处理和比较中,查找文本之间的差异是一项常见的任务,本文将详细介绍如何使用difflib模块来查找文本之间的差异,包括单行和多行文本的比较、生成差异报告,需要的可以参考下
    2024-03-03
  • 浅谈python 四种数值类型(int,long,float,complex)

    浅谈python 四种数值类型(int,long,float,complex)

    下面小编就为大家带来一篇浅谈python 四种数值类型(int,long,float,complex)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06

最新评论