django网站地图创建
Web开发 . 2019/11/26发布 . shanyonggang_web . 我要评论 . 315阅读

前言

站点地图是网站站长通知搜索引擎有关其站点上可进行爬网的页面的一种简便方法。Sitemap是最简单的形式,它是一个XML文件,其中列出了站点的URL以及有关每个URL的其他元数据(相对于站点中其他URL,上一次更新的时间,通常更改的频率以及重要性) ),以便搜索引擎可以更智能地抓取该网站。Web爬网程序通常从站点内的链接和其他站点发现页面。Sitemaps补充了这些数据,以允许支持Sitemaps的爬网程序拾取Sitemaps中的所有URL并使用关联的元数据了解这些URL。很多网站的连接层次比较深,蜘蛛很难抓取到,网站地图可以方便搜索引擎或者网络蜘蛛抓取网站页面,了解网站的架构,为网络蜘蛛指路,增加网站内容页面的收录概率。网站地图一般存放在域名根目录下并命名为sitemap,比如:https://www.shanyonggang.cn/sitemap.xml

Django自带了一个高级的生成网站地图的框架,我们可以很容易地创建出XML格式的网站地图。创建网站地图,只需编写一个Sitemap类,并在URLconf中编写对应的访问路由。

settings.py配置

在settings.py中的INSTALL_APP中添加

INSTALLED_APPS = [
    # 网站地图
    'django.contrib.sitemaps',
]

确保TEMPLATES已经成功设置包含一个DjangoTemplates 后端,其APP_DIRS选项设置为True

确保sites模型已经安装,即在INSTALL_APP中有如下:

INSTALLED_APPS = [
    'django.contrib.sites',
]

初始化

在主URL中添加如下代码:

from django.contrib.sitemaps.views import sitemap
from index.sitemaps import PostSitemap
sitemaps = {
    'posts': PostSitemap,
}
urlpatterns = [
    # 网站地图
    path('sitemap.xml', sitemap{'sitemaps':sitemaps},name='django.contrib.sitemaps.views.sitemap')
]

index为我自己创建的app,在此app下创建sitemaps.py文件,sitemap.py的代码如下:

from django.contrib.sitemaps import Sitemap

from .models import ArticlePost

class PostSitemap(Sitemap):
    # 当前条目修改的频率(可选参数)
    changefreq = 'daily'
    # 当前条目在网站中的权重系数(可选参数)
    priority = 0.9
    # 定义网站地图中的网址的协议(可选参数)
    protocol = 'https'
    # 必须定义的
    def items(self):
        return ArticlePost.objects.all()

    def lastmod(self, obj):
        return obj.create_time

这样就可以实现网站地图

具体配置可以查看官方文档站点地图框架


  • 有疑问请在下方评论区留言,我会尽快回复。
  • Email私信我: 511248513@qq.com 或添加博主 微信
本文作者:shanyonggang_web
发布时间:2019年11月26日 20:41
许可协议: 署名-非商业性使用 4.0 国际许可协议
知识共享许可协议     转载请保留原文链接及作者
正在加载今日诗词....
您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请狠狠点击下面的


登录 后回复

当前暂无评论,点击登录来做第一个吃螃蟹的人吧!