django 设置媒体url_Django设置网站地图sitemap
生活随笔
收集整理的這篇文章主要介紹了
django 设置媒体url_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 reverseclass NewsSitemap(Sitemap):changefreq = 'daily' # 可選,指定每個對象的更新頻率priority = 0.6 # 可選,指定每個對象的優先級,默認0.5def items(self): # 返回對象的列表.這些對象將被其他方法或屬性調用return News.objects.all()def lastmod(self, obj): # 可選,該方法返回一個datetime,表示每個對象的最后修改時間return obj.pub_timedef location(self, obj):#可選.返回每個對象的絕對路徑.如果對象有get_absolute_url()方法,可以省略locationreturn reverse('new', kwargs={'new_id': obj.id})# url.py
from django.contrib.sitemaps import sitemap # 導入sitemap視圖
from xxx.sitemaps import NewsSitemapsitemaps = {'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 reverseclass StaticViewSitmap(Sitemap):priority = 0.7changefreq = 'daily'def items(self):return ['index']def location(self, obj):return reverse('index')參考:The sitemap framework
總結
以上是生活随笔為你收集整理的django 设置媒体url_Django设置网站地图sitemap的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 上海欢乐谷哪个最刺激
- 下一篇: 苹果5s听筒坏了,维修需要多少钱?