sitemap是 Google 最先引入的网站地图协议,采用 XML 格式,它的作用简而言之就是优化搜索引擎的索引效率,详细的解释可以参考百度百科 。
下面介绍下如何为Django站点添加sitemap功能。
1、启用sitemap
在django的settings.py的INSTALLED_APPS中添加
'django.contrib.sites', 'django.contrib.sitemaps',
然后migrate数据库:
$ ./manage.py makemigrations $ ./manage.py migrate
登陆Django后台,修改SITE为你Django网站的域名和名称,然后在settings.py中加入SITE_ID = 1来制定当前的站点。
2、添加sitemap功能
(1)创建sitemap
创建sitemap.py.内容类似下面的代码:
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中加入:
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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍vscode添加GIT和SVN的方法示例,包括了vscode添加GIT和SVN的方法示例的使用技巧和注意事项,需要的朋友参考一下 一、添加SVN (1)添加svn插件 (2)安装的svn最好是默认路径安装的,不要问我为什么,因为很多软件都是按照默认路径找到bin的 表示安装正确,参考 vscode打开文件夹后右下角提示如下报错:SVN not found. Install it or
本文向大家介绍Django实现CAS+OAuth2的方法示例,包括了Django实现CAS+OAuth2的方法示例的使用技巧和注意事项,需要的朋友参考一下 CAS Solution 使用CAS作为认证协议。 A作为主要的认证提供方(provider)。 A保留用户系统,其余系统如xxx/www不保留用户系统,即Provider的实现在A。 实现步骤 xxx 选择登录,跳转到LMS的认证界面,CAS
本文向大家介绍VC++实现添加文件关联的方法示例,包括了VC++实现添加文件关联的方法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了VC++实现添加文件关联的方法。分享给大家供大家参考,具体如下: 用法如下: 希望本文所述对大家VC++程序设计有所帮助。
本文向大家介绍Django中模型Model添加JSON类型字段的方法,包括了Django中模型Model添加JSON类型字段的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Django中模型Model添加JSON类型字段的方法。分享给大家供大家参考。具体如下: Django里面让Model用于JSON字段,添加一个JSONField自动类型如下: 之后就直接为Model定义JSONF
请帮助我了解什么是好的设计在这里,详细。
本文向大家介绍Laravel 添加多语言提示信息的方法,包括了Laravel 添加多语言提示信息的方法的使用技巧和注意事项,需要的朋友参考一下 Laravel默认的locale用的是en,在resouces/lang/en文件夹下,我们可以看到以下几个文件: 其中validation.php是验证用户提交表单信息的提示文字,比如 该行将会在用户未填写某一栏(假设input的name为test)时提