Django的sitemap
1.安装
安装Sitemap APP的步骤如下:
- 在INSTALLED_APPS设置中添加'django.contrib.sitemaps';
- 确认你的TEMPLATES设置中包含DjangoTemplates后端,并将APP_DIRS选项设置为True,当然默认值就是这样,只有当你曾经修改过这些设置,才需要修改这个配置;
- 确认你已经安装sites framework.(在INSTALLED_APPS中添加'django.contrib.sites', 并添加设置SITE_ID=1,运行magrite)
2.例子
假设拥有一个News模型,并且您希望Sitemap包含指向所有新闻条目的链接.
# sitemaps.py
from django.contrib.sitemaps import Sitemap
from myweb.models import News
from django.urls import reverse
class NewsSitemap(Sitemap):
changefreq = 'daily' # 可选,指定每个对象的更新频率
priority = 0.6 # 可选,指定每个对象的优先级,默认0.5
def items(self): # 返回对象的列表.这些对象将被其他方法或属性调用
return News.objects.all()
def lastmod(self, obj): # 可选,该方法返回一个datetime,表示每个对象的最后修改时间
return obj.pub_time
def location(self, obj):#可选.返回每个对象的绝对路径.如果对象有get_absolute_url()方法,可以省略location
return reverse('new', kwargs={'new_id': obj.id})
# url.py
from django.contrib.sitemaps import sitemap # 导入sitemap视图
from xxx.sitemaps import NewsSitemap
sitemaps = {
'new': NewsSitemap,
}
urlpatterns = [
...
url(r'^sitemap\.xml$', sitemap, {'sitemap': sitemaps}, name='django.contrib.sitemaps.views.sitemap'),
]
当客服端访问 /sitemap.xml时,这将告诉Django生成一个Sitemap.
sitemap视图需要一个额外的必需参数:{sitemaps': sitemaps}.sitemaps是一个字典,将小节的标签(例如:new或blog)映射到Sitemap类(例如:NewsSitemap).它也可以映射到Sitemap类的实例(例如: NewsSitemap(some_var)).
3.静态视图的Sitemap
通常,您希望搜索引擎抓取工具索引既不是对象详细信息页面也不是列表页的视图(例如index页面)。解决方案是在 items 中显式列出这些视图的网址名称,并在网站地图的 location 方法中调用 reverse()
from django.contrib.sitemaps import Sitemap
from django.urls import reverse
class StaticViewSitmap(Sitemap):
priority = 0.7
changefreq = 'daily'
def items(self):
return ['index']
def location(self, obj):
return reverse('index')
Django的sitemap的更多相关文章
- Django:之Sitemap站点地图、通用视图和上下文渲染器
Django中自带了sitemap框架,用来生成xml文件 Django sitemap演示: sitemap很重要,可以用来通知搜索引擎页面的地址,页面的重要性,帮助站点得到比较好的收录. 开启si ...
- Django之sitemap
##########settings.py SITE_ID=1 # Application definition # taggit tag INSTALLED_APPS = [ 'myblog', ' ...
- Django拾遗--pagination、sitemap、admin、form
Django拾遗--pagination.sitemap.admin.form pagination 其实这个分页模块的原理就是根据设定的每页条数来分割queryset.查询结果/每页子项数目=页数 ...
- django网站地图sitemap
网站地图是根据网站的结构.框架.内容,生成的导航网页,是一个网站所有链接的容器.很多网站的连接层次比较深,蜘蛛很难抓取到,网站地图可以方便搜索引擎或者网络蜘蛛抓取网站页面,了解网站的架构,为网络蜘蛛指 ...
- django自身提供的sitemap和feed实现样例
<DJANGO BY EXAMPLE>这书的例子真是精心全过的, 基本的WEB开发过程全覆盖啊. 跟着一步一步的弄就OK啦..可以长很多知道的. 这次跟着作的是sitemap和feed功能 ...
- 第六章:Django 综合篇 - 7:网站地图sitemap
网站地图是根据网站的结构.框架.内容,生成的导航网页,是一个网站所有链接的容器.很多网站的连接层次比较深,蜘蛛很难抓取到,网站地图可以方便搜索引擎或者网络蜘蛛抓取网站页面,了解网站的架构,为网络蜘蛛指 ...
- 《Django By Example》第三章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:第三章滚烫出炉,大家请不要吐槽文中 ...
- 全栈一路坑之使用django创建博客
最近在看一篇全栈增长工程师实战,然后学习里面的项目,结果发现作者用的技术太过老旧,好多东西都已经被抛弃了,所以结合着官方文档和自己的一些理解将错误的信息替换一下,边写边学习 准备工作和工具 作者说需要 ...
- Django+Bootstrap+Mysql 搭建个人博客(五)
5.1.自定义403,404和500页面 (1)website/urls.py from blog import views as blog_views handler403 = blog_views ...
随机推荐
- 2018.07.09 洛谷P2365 任务安排(线性dp)
P2365 任务安排 题目描述 N个任务排成一个序列在一台机器上等待完成(顺序不得改变),这N个任务被分成若干批,每批包含相邻的若干任务.从时刻0开始,这些任务被分批加工,第i个任务单独完成所需的时间 ...
- C#与android连接 SimpleWifi
有时候 Read时会返回0长度 ----- 当连续2次每读到数据时,建议发个心跳信息,然后单片机给个回复 C# using System; using System.Collections.Gener ...
- [K8S]kubeadm国内镜像安装方式
使用国内镜像站 sudo apt-get update && sudo apt-get install -y apt-transport-https curl sudo curl -s ...
- [转]关于docker包存储结构说明
原文:http://blog.csdn.net/w412692660/article/details/49005631 前段时间与同事交流docker的安装包层次结构,并沟通相关每个文件的作用,但是一 ...
- IntelliJ IDEA 2017版 spring-boot使用Spring Data JPA使用Repository<T, T>编程
1.环境搭建pom.xml搭建 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=& ...
- HDU 1847 Good Luck in CET-4 Everybody! (博弈)
题意:不用说了吧,都是中文的. 析:虽说这是一个博弈的题,但是也很简单的,在说这个题目前我们先说一下巴什博弈定理. 巴什博弈定理:一堆物品有n个,有两个人(两个人足够聪明)轮流取,规定每次至少取一个, ...
- html 源码 引入样式
post-title2 示例 sdf post-title 示例
- SSH整合 第四篇 Spring的IoC和AOP
这篇主要是在整合Hibernate后,测试IoC和AOP的应用. 1.工程目录(SRC) 2.IoC 1).一个Service测试类 /* * 加入spring容器 */ private Applic ...
- Eclipse的使用技巧
Eclipse有强大的编辑功能, 工欲善其事,必先利其器, 掌握Eclipse快捷键,可以大大提高工作效率. 小坦克我花了一整天时间, 精选了一些常用的快捷键操作,并且精心录制了动画, 让你一看就会. ...
- UniGui之锱铢积累(仔细看这个文件)
http://www.doc88.com/p-4022977294324.html 这个是Word文档