Django入門:學習資源介紹與知識儲備
Django入門:基本知識
熟悉python和django
Django 是基于 python 的,所以在開發(fā)前需要熟悉相關的技術.
python 推薦幾本比較好的書,包括:
learning python
python cookbook
熟讀 Django 的 官方文檔 和相關的書籍,這些都是必須。比較好的書籍有:
Django Book
Pro Django
Practical Django Projects
更多參考 django相關資源.
其它的相關技術
作為web開發(fā)的程序員,還需要了解其它的相關技術,包括:
html
css
javascript ( jquery 等)
ajax
網絡知識和標準,如 http 協議, TCP/IP網絡架構等.
Django入門:可用的資源
掌握了上面提到的基本知識外,我們對 python, Django 及web開發(fā)的相關技術有了一定的熟悉,也對 python 和 Django 的 哲學也有一定的了解,如 Don't Repeat Yourself,Keep It Simple, Stupid, Don't Reinvent Wheels 等.
所以,在開始一個項目之前我們需要了解已有哪些可用的資源.
而在可用的資源中,最需要跟蹤的一個項目就是 pinax ,它提供了站點所必須的一些常用功能,而 所采用的方式便是提供一些 可復用的app, 使得我們很容易集成到我們的環(huán)境中, 或者基于 pinax 二次開發(fā)。
除此之外,還需要了解一些特定領域的相關資源,如:
商店 satchmo
地理 GeoDjango
OpenId django-openid
等等
在獲得特定領域的相關資源后,會大大地提高開發(fā)的效率,從而降低成本。
Django入門:高級知識
掌握上面提到的技術,這時就基本上是一個合格的 Django 程序員了,但是除此之外,還需要了解一些高級的知識.
使用virtualenv+pip來構建獨立的開發(fā)環(huán)境
virtualenv 用于建立一個獨立的(與其它module)的虛擬環(huán)境,從而使得不同的虛擬環(huán)境下的 程序可以依賴于不同版本的module,例如某個django project是基于0.96的,而另外的project是基于 1.1的,所以就必須有不同的虛擬環(huán)境。
使用 pip 來 復制 已有的依賴。 pip 是用來取代 easy_install 的,除此而外, 我們還可以很方便地使用 pip 來 復制 我們當前的工作環(huán)境。例如,我們建立一個requirements.txt 文件 來記錄我們當前工作環(huán)境中的相關依賴程序,然后輸入 pip install -r /path/to/requirements.txt, 那么相應的 依賴軟件會自動安裝。前提是你的系統已經安裝了 pip.
除此而外,當你需要部署一個django項目時,可以使用 wsgi 很方便地進行部署。
Django入門:使用fabric進行部署
參考 Deploying Python Web Applications
另外,我們還可以使用 python 的強大功能,來實現例如配置文件的路徑自適應, 利用調試狀態(tài)來設定特定的屬性等.
推薦的開發(fā)流程
可使用下面的開發(fā)流程來進行 Django 的開發(fā)(假設是從新開始一個項目的):
使用 virtualenv 建立相應的獨立環(huán)境
使用 easy_install 和 pip 安裝相應的依賴模塊
多人開發(fā)時可將當前的所有模塊 復制 給同事( pip 有 feeze 命令來輸出當前環(huán)境下的所有依賴模塊及版本,以保證所有的開發(fā)人員使用相同的代碼庫)
為服務器也建立相應的獨立環(huán)境,并使用 fabric 進行自動化部署.
***,使用 wsgi 和web服務器來發(fā)布產品
結論
利用 Django 的 復用, 快速開發(fā) 等特性來進行Web開發(fā), 其實是有一定的規(guī)律可循的, 除了上面介紹的一些開發(fā)知識(技巧)外,如果在開發(fā)中你發(fā)現某個過程很繁瑣,你這時候就要考慮去調研 是否已經存在相關的解決方案.而不要一味地,耗時地去完成.
本文來自朱濤的博客:《Django開發(fā)必知必會》
【編輯推薦】