Django建站:如何使用sitemap实现网站地图

2023-02-0111:58:08后端程序开发Comments827 views字数 1693阅读模式

网站地图是一个网站里所有链接的集合,搜索引擎可以根据网站地图很轻松的抓取你sitemap里面记录的网址,所以把网站地图提交给搜索引擎,让其录入你的内容,是提高自己网站流量很重要的一个手段,尤其是对于新建网站,网站地图是SEO必要的手段,下面就简单介绍下Django项目如何快速生成网站地图sitemap文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/30650.html

1. 安装sitemap

sitemap是一个app,所以要使用它,需要先安装这个app,在项目的setting.py文件的INSTALLED_APPS里,增加如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/30650.html

'django.contrib.sitemaps',

2. 实现sitemap生成文件

在项目app下新建sitemaps.py文件,比如要实现博客文章的链接放进sitemap里面,在blog app下新建sitemap.py文件,定义ArticleSitemap类,继承Django的类Sitemap,如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/30650.html

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它文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/30650.html

from django.contrib.sitemaps import Sitemap

a. changefreq和priority对应sitemap.xml里面的changefreq和priority。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/30650.html

b. item方法是返回你所有的文章object,locate()会对item返回的object去调用get_absolute_url方法,这个值会放在xml里面loc的位置。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/30650.html

c. 所以,如果不去重写locate方法,就需要你在对应的model里面实现get_absolute_url方法,比如这里是Article的model里面需要实现get_absolute_url方法,这里要注意的是参数要和url里面配置的匹配。因为用到了reverse,所以需要导入。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/30650.html

from django.urls import reverse

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

d. lastmod同样对应于xml里面的lastmod文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/30650.html

e. 这样就完成了一个model的sitemap实现, 同样的方法可以实现其他需要放进sitemap里的model文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/30650.html

3. 使sitemap生效

在项目的url.py里面,加入sitemap.py里面实现的类,如下:如果还有其他实现的类,加在sitemaps字典里就可以了。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/30650.html

from blog.sitemaps import ArticleSitemap

sitemaps = {
    'articles': ArticleSitemap
}

在urlpatterns里面加入url,如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/30650.html

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

这里用到了sitemap,所以需要import这个模块文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/30650.html

from django.contrib.sitemaps.views import sitemap

4. 前端html页面设置

在网站底部,根据页面排版增加sitemap的超链接,如下文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/30650.html

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

5. 查看效果

如果这些都配置好了,那么就可以在浏览器里输入 网站地址/sitemap.xml查看,也可以直接点网站底部的网站地图,会自动跳转到网站地址/sitemap.xml,比如我的网站地图在 http://www.0a0z.cn/sitemap.xml,可以看下网站地图的格式。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/30650.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/bc/30650.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定