老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

Django中的sitemap有什么作用-創新互聯

創新互聯www.cdcxhl.cn八線動態BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!

創新互聯建站2013年開創至今,先為文山州等服務建站,文山州等地企業,進行企業商務咨詢服務。為文山州企業網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。

Django中的sitemap有什么作用?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

sitemap 是你服務器上的一個XML文件,它告訴搜索引擎你的頁面的更新頻率和某些頁面相對于其它頁面的重要性。 這個信息會幫助搜索引擎索引你的網站。

例如,這是 Django 網站(http://www.djangoproject.com/sitemap.xml)sitemap的一部分:



 
  http://www.djangoproject.com/documentation/
  weekly
  0.5
 
 
  http://www.djangoproject.com/documentation/0_90/
  never
  0.1
 
 ...

需要了解更多有關 sitemaps 的信息, 請參見 http://www.sitemaps.org/.

Django sitemap 框架允許你用 Python 代碼來表述這些信息,從而自動創建這個XML文件。 要創建一個站點地圖,你只需要寫一個`` Sitemap`` 類,并且在URLconf中指向它。

安裝

要安裝 sitemap 應用程序, 按下面的步驟進行:

將 'django.contrib.sitemaps' 添加到您的 INSTALLED_APPS 設置中.

確保 'django.template.loaders.app_directories.load_template_source' 在您的 TEMPLATE_LOADERS 設置中。 默認情況下它在那里, 所以, 如果你已經改變了那個設置的話, 只需要改回來即可。

確定您已經安裝了 sites 框架.

Note

sitemap 應用程序沒有安裝任何數據庫表. 它需要加入到 INSTALLED_APPS 中的唯一原因是: 這樣 load_template_source 模板加載器可以找到默認的模板.

要在您的Django站點中激活sitemap生成, 請在您的 URLconf 中添加這一行:

(r'^sitemap\.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps})

sitemap文件的名字無關緊要,但是它在服務器上的位置卻很重要。 搜索引擎只索引你的sitemap中當前URL級別及其以下級別的鏈接。 用一個實例來說,如果 sitemap.xml 位于你的根目錄,那么它將引用任何的URL。 然而,如果你的sitemap位于 /content/sitemap.xml ,那么它只引用以 /content/ 打頭的URL。

sitemap視圖需要一個額外的必須的參數: {'sitemaps': sitemaps} . 

Sitemap 類

Sitemap 類展示了一個進入地圖站點簡單的Python類片斷.例如,一個 Sitemap 類能展現所有日志入口,而另外一個能夠調度所有的日歷事件。 

在最簡單的例子中,所有部分可以全部包含在一個 sitemap.xml 中,也可以使用框架來產生一個站點地圖,為每一個獨立的部分產生一個單獨的站點文件。

Sitemap 類必須是 django.contrib.sitemaps.Sitemap 的子類. 他們可以存在于您的代碼樹的任何地方。

例如假設你有一個blog系統,有一個 Entry 的model,并且你希望你的站點地圖包含所有連到你的blog入口的超鏈接。 你的 Sitemap 類很可能是這樣的:

from django.contrib.sitemaps import Sitemap
from mysite.blog.models import Entry
 
class BlogSitemap(Sitemap):
  changefreq = "never"
  priority = 0.5
 
  def items(self):
    return Entry.objects.filter(is_draft=False)
 
  def lastmod(self, obj):
    return obj.pub_date

聲明一個 Sitemap 和聲明一個 Feed 看起來很類似;這都是預先設計好的。

如同 Feed 類一樣, Sitemap 成員也既可以是方法,也可以是屬性。

一個 Sitemap 類可以定義如下 方法/屬性:

items (必需 ):提供對象列表。 框架并不關心對象的 類型 ;唯一關心的是這些對象會傳遞給 location() , lastmod() , changefreq() ,和 priority() 方法。

location (可選): 給定對象的絕對URL。 絕對URL不包含協議名稱和域名。 下面是一些例子:

好的: '/foo/bar/' '/foo/bar/'

差的: 'example.com/foo/bar/' 'example.com/foo/bar/'

如果沒有提供 location , 框架將會在每個 items() 返回的對象上調用 get_absolute_url() 方法.

lastmod (可選): 對象的最后修改日期, 作為一個Python datetime 對象. The object's last modification date, as a Python datetime object.

changefreq (可選): 對象變更的頻率。 可選的值如下(詳見Sitemaps文檔):

'always'

'hourly'

'daily'

'weekly'

'monthly'

'yearly'

'never'

priority (可選): 取值范圍在 0.0 and 1.0 之間,用來表明優先級。

sitemap框架提供了一些常用的類。

FlatPageSitemap

django.contrib.sitemaps.FlatPageSitemap 類涉及到站點中所有的flat page,并在sitemap中建立一個入口。 但僅僅只包含 location 屬性,不支持 lastmod , changefreq ,或者 priority 。

GenericSitemap

GenericSitemap 與所有的通用視圖一同工作(詳見第9章)。

你可以如下使用它,創建一個實例,并通過 info_dict 傳遞給通用視圖。 唯一的要求是字典包含 queryset 這一項。 也可以用 date_field 來指明從 queryset 中取回的對象的日期域。 這會被用作站點地圖中的 lastmod 屬性。

下面是一個使用 FlatPageSitemap and GenericSiteMap (包括前面所假定的 Entry 對象)的URLconf:

from django.conf.urls.defaults import *
from django.contrib.sitemaps import FlatPageSitemap, GenericSitemap
from mysite.blog.models import Entry
 
info_dict = {
  'queryset': Entry.objects.all(),
  'date_field': 'pub_date',
}
 
sitemaps = {
  'flatpages': FlatPageSitemap,
  'blog': GenericSitemap(info_dict, priority=0.6),
}
 
urlpatterns = patterns('',
  # some generic view using info_dict
  # ...
 
  # the sitemap
  (r'^sitemap\.xml$',
   'django.contrib.sitemaps.views.sitemap',
   {'sitemaps': sitemaps})
)

創建一個Sitemap索引

sitemap框架同樣可以根據 sitemaps 字典中定義的單獨的sitemap文件來建立索引。 用法區別如下:

您在您的URLconf 中使用了兩個視圖: django.contrib.sitemaps.views.index 和 django.contrib.sitemaps.views.sitemap . `` 

django.contrib.sitemaps.views.sitemap 視圖需要帶一個 section 關鍵字參數.

這里是前面的例子的相關的 URLconf 行看起來的樣子:

(r'^sitemap.xml$',
 'django.contrib.sitemaps.views.index',
 {'sitemaps': sitemaps}),
 
(r'^sitemap-(?P
.+).xml$',  'django.contrib.sitemaps.views.sitemap',  {'sitemaps': sitemaps})  

這將自動生成一個 sitemap.xml 文件, 它同時引用 sitemap-flatpages.xml 和 sitemap-blog.xml . Sitemap 類和 sitemaps 目錄根本沒有更改.

通知Google

當你的sitemap變化的時候,你會想通知Google,以便讓它知道對你的站點進行重新索引。 框架就提供了這樣的一個函數: django.contrib.sitemaps.ping_google() 。

ping_google() 有一個可選的參數 sitemap_url ,它應該是你的站點地圖的URL絕對地址(例如:

如果不能夠確定你的sitemap URL, ping_google() 會引發 django.contrib.sitemaps.SitemapNotFound 異常。

我們可以通過模型中的 save() 方法來調用 ping_google() :

from django.contrib.sitemaps import ping_google
 
class Entry(models.Model):
  # ...
  def save(self, *args, **kwargs):
    super(Entry, self).save(*args, **kwargs)
    try:
      ping_google()
    except Exception:
      # Bare 'except' because we could get a variety
      # of HTTP-related exceptions.
      pass

一個更有效的解決方案是用 cron 腳本或任務調度表來調用 ping_google() ,該方法使用Http直接請求Google服務器,從而減少每次調用 save() 時占用的網絡帶寬。 

python manage.py ping_google /sitemap.xml

關于Django中的sitemap有什么作用問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注創新互聯-成都網站建設公司行業資訊頻道了解更多相關知識。


網頁標題:Django中的sitemap有什么作用-創新互聯
文章位置:http://www.xueling.net.cn/article/cdjiij.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 另类zoofilia杂交videos | 亚洲成a人片在线观看www | 欧美精品成人一区二区在线观看 | 久久精品国产亚卅av嘿嘿 | 日韩三级一区二区三区 | 一级做a爰片久久高潮 | 呻吟翘臀后进爆白浆 | 欧美精产国品一二三产品 | 97人妻中文字幕免费视频 | 婷婷人人爽人人爽人人片 | 日韩三级免费观看 | 成人宗合 | 亚洲无吗一区 | 亚洲精品高潮 | 午夜精品久久久久久久久久久久久 | 国产又爽又黄又不遮挡视频 | 成人免费看的A级毛片 | 精品久久久久久无码免费 | 国产精品一区二区四区 | 99久久久国产精品免费99 | 美女裸身裸乳视频网站 | 精品无码一区二区的天堂 | 免费一级欧美片在线观看 | 国产第一尤物在线观看 | 91麻豆久久久| 谍战剧《惊弦》在线观看免费高清 | 精品韩国三级在线观看视频 | 西西人体444WWW大胆无码视频 | 亚洲天堂一区 | 国产精品国产三级国产专播i12 | 在线看一区 | 免费视频99| 久久免费视老师机影片 | 欧美一区二区三区视频在线 | 国产精品爱久久久久久久 | 99精品国产高清一区二区麻豆 | 亚洲国产女人 | 无人在线视频观看免费 | 国产精品激情综合五月天中文字幕 | 又爽又黄又无遮挡的视频在线观看 | 老女人综合网 |