‌保姆级最简单实现django的站点地图sitemap

‌保姆级最简单实现django的站点地图sitemap

首先打开你的项目下的setting.py文件,然后找到 INSTALLED_APPS这个列表变量,然后在里面加入如下两项:

['django.contrib.sites',
'django.contrib.sitemaps',]

然后在settings.py中的任意位置加入一个  SITE_ID = 1 的变量,然后在你的项目根目录运行下面的命令进行数据库同步,

python manage.py migrate

然后我们来到项目的urls.py文件中,先import一个用于sitemap的django类和你的假定表示文章的数据库模型Post,

from django.contrib.sitemaps import GenericSitemap
from blog.models import Post

紧接着,我们在urls.py中新建一个字典,再定义一个path(),如下:

article_dict = {
    'queryset': Post.objects.all(),
}

path('sitemap.xml', sitemap,
                    {'sitemaps': {'blog': GenericSitemap(article_dict, priority=0.6)}})

然后我们还要到项目的models.py中假定你的表示文章的数据库模型Post()中新增一个如下函数,

def get_absolute_url(self):
    return reverse('article_detail', args=[str(self.slug)])

说明一下,上述的self.slug表示你的文章的url链接的数据库字段名,如果你用id当做url的话,上述就应该用self.id了。

最后我们来到django admin面板,找到站点管理下的站点-站点(如果你的面板是英文的自行改成中文就行了),点进去把里面的域名和显示名称中的example.com改成你自己的域名就行了,好了,现在大工告成,你可以在这访问一下本站的 sitemap链接 测试一下。

0 评论 在 “‌保姆级最简单实现django的站点地图sitemap

发表评论

电子邮件地址不会被公开。 必填项已用*标注

captcha