1. 程式人生 > >10個實用的Django技巧和建議

10個實用的Django技巧和建議


如果在Django專案中能夠靈活使用某些方法和技巧的話,它將大大加快軟體開發的速度同時避免很多頭疼的事。作者在下面列舉了幾點,這些方法由淺入深,可以幫助任何級別的程式設計師更加熟練的使用Django。

本人對於Python學習建立了一個小小的學習圈子,為各位提供了一個平臺,大家一起來討論學習Python。歡迎各位到來Python學習群:960410445一起討論視訊分享學習。Python是未來的發展方向,正在挑戰我們的分析能力及對世界的認知方式,因此,我們與時俱進,迎接變化,並不斷的成長,掌握Python核心技術,才是掌握真正的價值所在。

1、 在配置中使用相對路徑

某些原因使得專案可能常常會被來回的遷移。如果沒有事先規劃好這種可能性的話這絕對是一個棘手的問題。Rob Hudson 有一個極好的技巧能夠確保你的Django專案在部署過程中能夠輕鬆的來回遷移。僅僅只要編寫幾行程式碼在你的配置檔案(settings.py)中。

importos

BASE_DIR =os.path.dirname(os.path.abspath(__file__))

TEMPLATE_DIRS =(

    BASE_DIR +'/templates',

)

2、 使用{%url%}標籤

儘可能使用向後相容的{%url%}標籤來替換硬編碼形式的href,與使用絕對路徑的url(當然最好不要這樣做) 一樣達到相同的效果。你的Django專案遷移起來,那些連結也不會有影響。(譯者注:比如說我們有一個views.about函式指向about頁面r’^about/$’,就可以{% url views.about as about_url %}然後用{{about_url}}這個變數來代替絕對URL地址)儘管它還不是最高階的技巧,但是它確實值得你應用於Django專案中。

Photo by Cloudzilla.

3、 嘗試把Django admin應用到PHP專案中

Django最偉大的特性之一就是已經成為Django的核心功能的使用者驗證系統。它易安裝,主要用於使用者認證和其它一些必要的配置。這個酷斃了的使用者系統甚至被建議應用到你的PHP專案中去,這裡有一邊Jeff Croft 關於為什麼Django能夠作為任何語言任何應用中的系統管理模組的一個很好的解決方案。

4、 使用獨立的媒體伺服器

在開發環境中把靜態檔案放在與Django專案所在的同一臺伺服器中問題並不大,但是卻不要使用在生產環境中,為什麼?效率問題。Jacobian.org給出了一個合理的解釋。通過一臺獨立的伺服器來處理靜態檔案,效能將得到有效的提升,如果不想買伺服器的話,那麼使用Amazon S3相對來更便宜。

5、 使用Debugger工具條

除錯工具對任何一種語言來說都是不可或缺的.他們能夠加快開發的速度,指出潛在的缺陷. Rob Hudson開發了一個對開發人員非常有用django除錯工具。

6、 使用Django單元測試

利用單元測試確保你程式碼的改變和預期的一樣,而不會破壞任何老的程式碼,以便向後相容。Django一個強大的特性就是他能極其簡單地寫單元測試。Django也可直接使用python的文字測試和單元測試。Django的文件提供了一個詳細的教程和樣例程式碼關於怎樣做單元測試使得程式碼正確地執行,以及去除討厭的bug

7、 使用速查卡

這裡有兩頁厚的速查卡,在 Django文件中你可能翻來覆去要找半天的東西在這裡一目瞭然。它包含如下幾個主題

模板:

模板標籤及可選項

模板過濾器及可選項

日期格式化語法快速查閱

模型:

域和及選項

常用域的可選項

元型別可選項

模型管理可選項

表單:

域和可選項

常用域可選項

標準錯誤訊息鍵值

8、使用Django-chunks

除了使用Django的富文字編輯器建立塊更容易之外,Django-chunks同樣是用於模板中,這是重用程式碼塊的必不可少的工具。

9、 使用Memcache

如果效能在你的Django專案中已經成為一個棘手的問題,那麼你將需要使用一些快取策略。然而Django為快取提供很多的選擇。目前最好的無疑是Memcache,用Django安裝memcache非常地簡單,如果你使用cmemcache模組的時候。只要模組安裝完成後,你僅僅修改一行配置項,你的Django頁面變得輕快起來。

10、使用Django,心動不如行動

在你閱讀完這篇文章後如果你仍然不完全理解Django的強大,在你的下一個專案中使用Django的一個合符情理的理由就是:它能夠節省各種不同軟體設計的時間。Jeff Croft解釋為什麼用Django建立一個專案比你自己設計出來的更高效。Django允許你擴充套件自己的Web站點,不需要擔心設計或者程式碼以及資料庫的相容性,它會工作地很棒。