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

115次阅读
没有评论

共计 832 个字符,预计需要花费 3 分钟才能阅读完成。

首先打开你的项目下的 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 链接 测试一下。

正文完
 
sharp097
版权声明:本站原创文章,由 sharp097 2021-03-04发表,共计832字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)