美文网首页
Django设置网站地图sitemap

Django设置网站地图sitemap

作者: 汪菲宇 | 来源:发表于2019-07-27 09:55 被阅读0次

1.安装

安装Sitemap APP的步骤如下:

1.在INSTALLED_APPS设置中添加'django.contrib.sitemaps';

2.确认你的TEMPLATES设置中包含DjangoTemplates后端,并将APP_DIRS选项设置为True,当然默认值就是这样,只有当你曾经修改过这些设置,才需要修改这个配置;

3.确认你已经安装sites framework.(在INSTALLED_APPS中添加'django.contrib.sites', 并添加设置SITE_ID=1,运行magrite)

2.例子

假设拥有一个News模型,并且您希望Sitemap包含指向所有新闻条目的链接.

# sitemaps.py

from django.contrib.sitemaps import Sitemap

from myweb.models import News

from django.urls import reverse

class NewsSitemap(Sitemap):

    changefreq = 'daily'    # 可选,指定每个对象的更新频率

    priority = 0.6          # 可选,指定每个对象的优先级,默认0.5

    def  items(self):      # 返回对象的列表.这些对象将被其他方法或属性调用

        return News.objects.all()

    def lastmod(self, obj): # 可选,该方法返回一个datetime,表示每个对象的最后修改时间

        return obj.pub_time

    def location(self, obj):#可选.返回每个对象的绝对路径.如果对象有get_absolute_url()方法,可以省略location

        return reverse('new', kwargs={'new_id': obj.id})

# url.py

from django.contrib.sitemaps import sitemap    # 导入sitemap视图

from xxx.sitemaps import NewsSitemap

sitemaps = {

    'new': NewsSitemap,

}

urlpatterns = [

    ...

    url(r'^sitemap\.xml$', sitemap, {'sitemap': sitemaps}, name='django.contrib.sitemaps.views.sitemap'),

]

当客服端访问 /sitemap.xml时,这将告诉Django生成一个Sitemap.

sitemap视图需要一个额外的必需参数:{sitemaps': sitemaps}.sitemaps是一个字典,将小节的标签(例如:new或blog)映射到Sitemap类(例如:NewsSitemap).它也可以映射到Sitemap类的实例(例如: NewsSitemap(some_var)).

3.静态视图的Sitemap

通常,您希望搜索引擎抓取工具索引既不是对象详细信息页面也不是列表页的视图(例如index页面)。解决方案是在 items 中显式列出这些视图的网址名称,并在网站地图的 location 方法中调用 reverse()

from django.contrib.sitemaps import Sitemap

from django.urls import reverse

class StaticViewSitmap(Sitemap):

    priority = 0.7

    changefreq = 'daily'

    def items(self):

        return ['index']

    def location(self, obj):

        return reverse('index')

参考:https://docs.djangoproject.com/zh-hans/2.1/ref/contrib/sitemaps/ 

相关文章

  • Django设置网站地图sitemap

    1.安装 安装Sitemap APP的步骤如下: 1.在INSTALLED_APPS设置中添加'django.co...

  • sitemap网站地图

    什么是sitemap网站地图?什么是网站地图?什么是sitemap? 网站地图也就是sitemap是一个网站所有链...

  • 网站地图生成

    网站地图生成是使用站长工具_sitemap网站地图免费生成工具完成的,站长工具_sitemap网站地图免费生成工具...

  • Sitemap提交工具

    一、Sitemap介绍 1、什么是Sitemap 1)Sitemap协议 定义:Sitemap简称网站地图,就是网...

  • 网站地图(sitemap)在线生成

    网站地图在线生成其实也就是sitemap在线生成,在线生成网站地图(sitemap)的方式其实就两种: 一是、网站...

  • 网站地图是什么

    网站地图是什么?网站地图又叫站点地图或者Sitemap,网站地图是一个包含了大量网站链接的文件,这些链接是这个网站...

  • 网页地图

    网页地图是什么?网页地图就是网站地图、站点地图、sitemap。网页地图是一个网站所有链接的容器。很多网站的连接层...

  • 蜜芽网---网站地图&线框图&找寻定位

    一 网站地图 1 Sitemap 2 Blueprint 二 线框图 三 找寻定位 一 网站地图 1 Sitema...

  • 网站地图

    站长工具_sitemap网站地图免费生成工具(https://sitemap.webkk.net)提供便捷的在线工...

  • sitemap网站地图

    1、作用 (1)帮助搜索引擎更快的抓取到你网站里面的网页; (2)借助网站地图,网站更新的时候会第一时间通知搜索引...

网友评论

      本文标题:Django设置网站地图sitemap

      本文链接:https://www.haomeiwen.com/subject/goesrctx.html