首頁  >  文章  >  後端開發  >  10個實用的Django技巧和建議

10個實用的Django技巧和建議

高洛峰
高洛峰原創
2016-10-17 13:56:091357瀏覽

Django 作為一個傑出的Python開源框架,或許得不到和其它流行框架如Rails這樣多的讚美,但是它和其他框架一樣精煉,非常注重DRY(Don't Repeat Yoursef)原則、組件的重用性,透過自動化過程使編碼更簡潔。

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

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

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

import os
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、常用域可選項

標準錯誤訊息鍵值

8、常用域可選擇使用富<文字編輯器創建區塊更容易之外,Django-chunks同樣是用於模板中,這是重複使用程式碼區塊的必不可少的工具。

9、 使用Memcache

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

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

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


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn