9. Django framework

1.介紹 

 Django是Python寫成的框架,遵守MVC(Model View Controller)模式,使得python的開發變得方便。

 它主要分為四個部份

對象關係 映射器:數據模型和關係資料庫間的媒介

  URL分發器:基於正則表達式

 視圖系統:處理請求

 模板系統

 2.contrib的應用

 產生RSS和Atom(類似RRS但較標準化的工具)
彈性的評論系統
可擴展的認證系統
動態站點管理頁面
產生Google Sitemaps(優化搜尋引擎用)
協助創建地理信息系統(GIS)
支持輕量級標記語言(Textile和Markdown)
防止跨站請求偽造(cross-site request forgery)

 3.有兼容服務伺服器的類型:

 WSGI
FastCGI

 4.支持的資料庫類型:

 MySQL
SQLite
Oracle
PostgreSQL

 ------------------------------------------------------------------------------------------------

 

  這次我們這組的共筆主題是”Django”, Django是一個以Python為基礎的,並實做網頁MVC (Model-View-Controller)分離架構。好處就是資料與Web表現頁面分開,有的人可以開發Web網頁,有的人就可以專心處理資料庫開發的工作,程式碼也變的更加簡單與易於維護。 

  

  Django的歷史 

Django的發展起始於2003年秋天,由勞倫斯世界新聞日報(Lawrence Journal-World)Adrian HolovatySimon Willison開始發展Django網頁框架。勞倫斯世界新聞日報是屬於The World Company旗下的事業之一,開發Django的團隊是World Online部門,任務是維護該公司三個新聞網站:LJWorld.comLawrence.comKUsports.com 

 

2005年,Django經過兩年時間的開發,已經成為World Online的網站動力來源,此時Jacob Kaplan-Moss加入開發團隊,致力於使Django成為開放原始碼。在20057月,Django正式發布成為 Django,此名稱是以吉普賽爵士吉他手Django Reinhardt為命名。 

 

20086月, Django網頁框架將由此基金會繼續支持與發展。 

 

我們可以了解Django的兩項特色。 

 

第一,Django特別適合內容類型的網站。由於Django是從線上新聞的環境中所發展而來,因而Django內建許多內容類型的特色與功能,然而,也別因為這樣的"先天條件"而阻礙你採用Django網頁框架。對你的網頁應用程式(web application)來說,只要是動態網頁內容的網站系統,Django將會是一項有效的開發框架! 

 

二,Django是實用性的框架。因為Django本身是為了解決實務上遇到的問題而生,不是商業性產品(Django是開放原始碼),也不是理論學術的產物,Django的存在是為了解決網頁開發每天所遭遇到的問題,漸少開發所需的時間,並且讓應用程式易於維護。 

 

 

 


Django安裝

本文將告訴你如何安裝Django網頁框架,讓Django在你的電腦上可以執行!我們盡可能的說明安裝Django所需具備的一切條件,當然,如果有遺漏的地方,請見諒

 

安裝Python

Django是用Python程式語言所開發出來的網頁框架,因此,最基礎的條件是必須可以讓Python執行,這時你就必須要要安裝Python直譯器,安裝方式請參考Python網站說明。如果你的作業系統是Linux或是Mac OS X的話,那可能已經安裝了Python直譯器。Django支援Python 2.32.6的任一版本,由於Python 3.0和舊有2.x版本有許多不相容,因此,Django目前是不支援Python 3.0

 

安裝Django程式碼

  1. 請從Django網站下載最新版的程式碼,這會是一個壓縮檔,下載完成後請解壓縮檔案,建議將檔案解壓縮至名稱為Django的資料夾中,目錄中包含一個setup.py的檔案。
  2. 打開主控台(命令提示字元),將執行路徑移至Django的資料夾。
  3. 輸入setup.py install指令,Django將會自動完成安裝。
  4. 成功安裝Django之後,在Python的安裝路徑之下,其site-packages將會出現一個django的資料夾,你已經可以開始使用Django囉!

 

 

 

 

 

Django的優點

  

鬆耦合(Loose coupling)

 設計Django網頁框架的基本目標就是:鬆耦合(Loose coupling)和緊密的凝聚力(tight cohesion)。意思是說,當你在使用Django網頁框架時,你不需要知道框架之中的每個區塊。 

 

舉例來說,框架中的樣板(template)區塊無須知道web請求的處理,資料庫區塊也無須知道資料最後如何呈現成網頁,視圖(view)區塊無須知道設計師使用哪一個樣板。最後這些區塊可以完美地結合運作,這依靠的是最初緊密的凝聚力設計。 

 

 

 較少的程式碼(Less code)

 使用Django所開發的網頁應用程式(web application)應該盡可能地減少程式碼的撰寫,並且缺少可供模仿的樣板文件(boilerplate)Django應該充分地使用並發揮Python語言的動態特性能力,像是內省(introspection)的能力。 


下面就是通過使用Django來完成以上功能的例子:首先,我們分成4Python的文件,( models.py , views.py , urls.py )html模板文件( latest_books.html )

 

<!--[if !supportLists]-->·         <!--[endif]-->models.py檔主要用一個Python類來描述數據表。 稱為 模型(model) 。稱為模型(model) 。 運用這個類,你可以通過簡單的Python 的代碼來創建、檢索、更新、刪除資料庫中的記錄而無需寫一條又一條的SQL語句。運用這個類,你可以通過簡單的Python 的代碼來創建、檢索、更新、刪除數據庫中的記錄而無需寫一條又一條的SQL語句。  views.py檔包含了頁面的業務邏輯。 views.py檔包含了頁面的業務邏輯。 latest_books()函數叫做視圖 。 latest_books()函數叫做視圖 。  urls.py指出了什麼樣的URL 調用什麼的視圖。 urls.py指出了什麼樣的URL調用什麼的視圖。 在這個例子中/latest/ URL 將會調用latest_books()這個函數。在這個例子中/latest/ URL將會調用latest_books()這個函數。 換句話說,如果你的功能變數名稱是example.com, 任何人流覽網址http://example.com/latest/ 將會調用latest_books()這個函數。換句話說,如果你的功能變數名稱是example.com,任何人瀏覽網址http://example.com/latest/ 將會調用latest_books()這個函數。  latest_books.htmlhtml 範本,它描述了這個頁面的設計是如何的。 latest_books.htmlhtml範本,它描述了這個頁面的設計是如何的。 使用帶基本邏輯聲明的範本語言,{% for book in book_list %}使用帶基本邏輯聲明的範本語言,{% for book in book_list %}

 

 

 

 

 一致性(Consistency)

 Django在框架中不同的層次都應具有一致性,從低層次的Python程式撰寫風格,到高層次的框架使用經驗,其應用方式都要具有相同的風格。