Django1.3 release更新內容

來源:互聯網
上載者:User
文章目錄
  • 類別檢視 (Class-based views)
  • 日誌 Logging
  • 增強靜態檔案處理 Extended static files handling
  • unittest2
  • 事務的上下文管理器 Transaction context managers
  • 可控的串聯刪除 Configurable delete-cascade
  • 待翻譯字串的上下文標示和注釋 Contextual markers and comments for translatable strings
  • 增強內建模板標籤 Improvements to built-in template tags
  • TemplateResponse
  • 其他

1.3版本發布包含少量新功能和大量的bugfix,對Python版本的最低要求提高至2.4,另外這將是最後一個支援2.4的Django版本了,請果斷更新。

1.3帶來了什麼?類別檢視 (Class-based views)

本次更新加入了一個新的架構來支援類別檢視,這將意味著更高的代碼重用率和開發效率。新的Generic View基類在提供了易用性和擴充性的同時,還對原先的函數式generic view提供了完整的類比支援。

擴充連結:
通用類別檢視
新舊Generic View遷移指南

日誌 Logging

1.3加入了架構層級的對Python原生logging的支援,所以現在可以在Django項目中方便地配置和控制。Django內建了許多logging處理器,特別值得一提的就是之前500錯誤發送email的行為現在已經是一種logging行為了。

擴充連結:
Django的logging介面

增強靜態檔案處理 Extended static files handling

1.3包含了一個新的app django.contrib.staticfiles 來協助開發人員管理渲染頁面所需的如js、css這樣的靜態檔案。
在之前,所有的靜態檔案都是用MEDIA_URL和MEDIA_ROOT來控制的。為了和使用者上傳的檔案作區分,staticfiles橫空出世,現在你可以將靜態檔案分配到app目錄或任意你指定的目錄,分發app時就更為方便了。

擴充連結:
staticfiles的文檔

unittest2

Django 1.3從Python 2.7複製了一份unittest2來為低版本Python提供2.7中帶來的那些關於unittest的重大功能更新。你只需要使用django.utils.unittest來調用這個庫,Django會判斷是使用已安裝的unittest2還是Django的copy。

事務的上下文管理器 Transaction context managers

Python 2.5以上的使用者可以使用新的事務的上下文管理器來處理視圖中的事務,例如:
with transaction.autocommit():    # …

擴充連結:
交易管理

可控的串聯刪除 Configurable delete-cascade

ForeignKey和OneToOneField現在可以通過一個on_delete參數來控制刪除時的行為。之前,所有的刪除都是級聯的,現在另外還支援設定空值、設定預設值、設定成任意值、阻止刪除和無作為等操作。具體定義請參考 on_delete 的文檔

待翻譯字串的上下文標示和注釋 Contextual markers and comments for translatable strings

待翻譯字串現在可以通過pgettext來進行標示,另外,你也可以用特殊記號來給其加上注釋。

擴充連結:
上下文標示
注釋

增強內建模板標籤 Improvements to built-in template tags

include 標籤 引入with選項來為匯入檔案進行傳參
include 標籤 引入only開關來避免上下文幹擾
with 標籤 現在可以在一個with塊中定義多個變數
load 標籤 引入from選項來進行獨立的標籤或過濾器的匯入
譯者按: 這些改動很實用,另,從include上隱約看到了mako的影子……

TemplateResponse

有時讓修飾器或中介軟體來修改響應是一件很有效做法,但是在建立完HttpResponse後是很難進修修改的。為了克服這個限制,Django 1.3加入了一個新的TemplateResponse,它能夠保留相關的模板和環境變數,只在需要時才產生最終響應。

擴充連結:
相關文檔


有關緩衝的變動

Django 1.3引入了一些對緩衝架構的改進:

  • 加入多緩衝支援
  • 緩衝API中加入了版本控制、緩衝首碼和鍵變幻函數
  • 現在可以通過HTTP要求標頭來建立緩衝鍵
  • 緩衝後台加入對pylibmc的支援
其他

還有許多小的改動,如:

  • MEDIA_URL和STATIC_URL必須以斜杠結尾
  • 增加 RequestFactory 供測試用
  • 可以給管理員發送富文本郵件,同時,錯誤郵件包含了更多debug模式下的頁面資訊和格式
  • simple_tag()加入一個takes_context參數,可以更方便的建立需要訪問模板內容相關的標籤
  • 提供一個預設包含RequestContext的render()快捷函數
  • 增強 F()運算式

另離線文檔已經更新,可到:

Google code 下載
115網盤 下載

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.