脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - Django添加sitemap的方法示例

Django添加sitemap的方法示例

2021-03-26 00:28緣來 Python

这篇文章主要介绍了Django添加sitemap的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

sitemap是 Google 最先引入的网站地图协议,采用 XML 格式,它的作用简而言之就是优化搜索引擎的索引效率,详细的解释可以参考百度百科

下面介绍下如何为Django站点添加sitemap功能。

1、启用sitemap

在django的settings.py的INSTALLED_APPS中添加

?
1
2
'django.contrib.sites',
'django.contrib.sitemaps',

然后migrate数据库:

?
1
2
$ ./manage.py makemigrations
$ ./manage.py migrate

登陆Django后台,修改SITE为你Django网站的域名和名称,然后在settings.py中加入SITE_ID = 1来制定当前的站点。

2、添加sitemap功能

(1)创建sitemap

创建sitemap.py.内容类似下面的代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
from django.contrib.sitemaps import Sitemap
from blog.models import Article, Category, Tag
from accounts.models import BlogUser
from django.contrib.sitemaps import GenericSitemap
from django.core.urlresolvers import reverse
 
class StaticViewSitemap(Sitemap):
 priority = 0.5
 changefreq = 'daily'
 
 def items(self):
  return ['blog:index', ]
 
 def location(self, item):
  return reverse(item)
 
 
class ArticleSiteMap(Sitemap):
 changefreq = "monthly"
 priority = "0.6"
 
 def items(self):
  return Article.objects.filter(status='p')
 
 def lastmod(self, obj):
  return obj.last_mod_time
 
 
class CategorySiteMap(Sitemap):
 changefreq = "Weekly"
 priority = "0.6"
 
 def items(self):
  return Category.objects.all()
 
 def lastmod(self, obj):
  return obj.last_mod_time
 
 
class TagSiteMap(Sitemap):
 changefreq = "Weekly"
 priority = "0.3"
 
 def items(self):
  return Tag.objects.all()
 
 def lastmod(self, obj):
  return obj.last_mod_time
 
 
class UserSiteMap(Sitemap):
 changefreq = "Weekly"
 priority = "0.3"
 
 def items(self):
  return BlogUser.objects.all()
 
 def lastmod(self, obj):
  return obj.date_joined

(2)url配置

url.py中加入:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
from DjangoBlog.sitemap import StaticViewSitemap, ArticleSiteMap, CategorySiteMap, TagSiteMap, UserSiteMap
 
sitemaps = {
 
 'blog': ArticleSiteMap,
 'Category': CategorySiteMap,
 'Tag': TagSiteMap,
 'User': UserSiteMap,
 'static': StaticViewSitemap
}
 
url(r'^sitemap\.xml$', sitemap, {'sitemaps': sitemaps},
  name='django.contrib.sitemaps.views.sitemap'),

至此,全部完成,运行你的django程序,浏览器输入:http://127.0.0.1:8000/sitemap.xml

就可以看见已经成功生成了,然后就可以提交这个地址给搜索引擎。 我的网站的sitemap的地址是:https://www.fkomm.cn/sitemap.xml

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://www.jianshu.com/p/ceba03f14b18

延伸 · 阅读

精彩推荐