Code前端首页关于Code前端联系我们

Django Site Builder:如何使用站点地图来实现站点地图

terry 2年前 (2023-09-24) 阅读数 53 #后端开发

站点地图是网站上所有链接的集合。搜索引擎可以根据站点地图轻松抓取您站点地图中注册的网址,因此请将您的站点地图提交给搜索引擎。允许它注册您的内容是增加网站流量的非常重要的手段,特别是对于新网站。 Sitemap是SEO的必备工具。这里简单介绍一下Django项目如何快速生成站点地图

1。安装站点地图

站点地图是一个应用程序,因此要使用它,您需要先安装该应用程序。在项目的setting.py 文件中的INSTALLED_APPS 中,添加以下内容:

'django.contrib.sitemaps',

2。在项目应用程序中部署站点地图生成的文件

创建一个新的 sitemaps.py 文件。例如,如果要在sitemap中嵌入一篇博客文章的链接,则在博客应用下新建一个sitemap.py文件,定义ArticleSitemap类并继承Django类Sitemap,如下:

class ArticleSitemap(Sitemap):
    changefreq = 'weekly'
    priority = 1.0

    def items(self):
        return Article.objects.all()

    def lastmod(self, obj):
        if obj.update_date:
            return obj.update_date
        return obj.add_time

Sitemap类使用,否则忘记import

from django.contrib.sitemaps import Sitemap

a。 changefreq和priority对应于sitemap.xml中的changefreq和priority。

b。 item 方法返回所有 item 对象。 locate() 将在 element 返回的对象上调用 get_absolute_url 方法。该值将被放置在 xml 中的 loc 位置。

c。因此,如果不重写locate方法,则必须在相应模型中实现get_absolute_url方法。例如,这里是需要实现 get_absolute_url 方法的文章模型。这里需要注意的是,参数必须配置在url中。匹配。因为使用了reverse,所以必须导入。

from django.urls import reverse

def get_absolute_url(self):
    return reverse('blog:article_detail', kwargs={'article_id': self.id})

d。 lastmod 也对应于 xml 中的lastmod

e。这样就完成了模型的 Web 地图实现。同样的方法也可以实现其他需要录入站点地图的模型

3。让sitemap高效

在项目的url.py中,添加sitemap.py中实现的类,如下: 如果还有实现的其他类,只需将其添加到sitemap字典中即可。

from blog.sitemaps import ArticleSitemap

sitemaps = {
    'articles': ArticleSitemap
}

在urlpatterns中添加url,如下:

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

这里使用了Sitemap,所以需要import模块

from django.contrib.sitemaps.views import sitemap

4。前端html页面设置

在网站底部,根据页面布局添加sitemap超链接,如下

<a href="/sitemap.xml" title="Sitemap" target="_blank">网站地图</a>

5.看效果

如果配置了这些,你可以在浏览器中输入URL/sitemap.xml来查看,也可以直接点击网页底部的sitemap,它会自动跳转到该URL。 /sitemap.xml,例如我的网站是http://www.0a0z.cn/sitemap.xml。您可以在站点地图上检查格式。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门