對(duì)于Python的Django框架使用的一些實(shí)用建議
前言:隨著Django1.4第二個(gè)候選版的發(fā)布,雖然還不支持Python3,但Django團(tuán)隊(duì)已經(jīng)在著手計(jì)劃中,據(jù)官方博客所說(shuō),Django1.5將會(huì)試驗(yàn)性的支持python3。
Django 作為一個(gè)杰出的Python開(kāi)源框架,或許得不到和其它流行框架如
如果在Django項(xiàng)目中能夠靈活使用某些方法和技巧的話,它將大大加快軟件開(kāi)發(fā)的速度同時(shí)避免很多頭疼的事。作者在下面列舉了幾點(diǎn),這些方法由淺入深,可以幫助任何級(jí)別的程序員更加熟練的使用Django。 0、 在配置中使用相對(duì)路徑 某些原因使得項(xiàng)目可能常常會(huì)被來(lái)回的遷移。如果沒(méi)有事先規(guī)劃好這種可能性的話這絕對(duì)是一個(gè)棘手的問(wèn)題。Rob Hudson 有一個(gè)極好的技巧能夠確保你的Django項(xiàng)目在部署過(guò)程中能夠輕松的來(lái)回遷移。僅僅只要編寫(xiě)幾行代碼在你的配置文件(settings.py)中。 1、 使用{%url%}標(biāo)簽 盡可能使用向后兼容的{%url%}標(biāo)簽來(lái)替換硬編碼形式的href,與使用絕對(duì)路徑的url(當(dāng)然最好不要這樣做) 一樣達(dá)到相同的效果。你的Django項(xiàng)目遷移起來(lái),那些鏈接也不會(huì)有影響。(譯者注:比如說(shuō)我們有一個(gè)views.about函數(shù)指向about頁(yè)面r'^about/$',就可以{% url views.about as about_url %}然后用{{about_url}}這個(gè)變量來(lái)代替絕對(duì)URL地址)盡管它還不是最高級(jí)的技巧,但是它確實(shí)值得你應(yīng)用于Django項(xiàng)目中。 Django最偉大的特性之一就是已經(jīng)成為Django的核心功能的用戶驗(yàn)證系統(tǒng)。它易安裝,主要用于用戶認(rèn)證和其它一些必要的配置。這個(gè)酷斃了的用戶系統(tǒng)甚至被建議應(yīng)用到你的PHP項(xiàng)目中去,這里有一邊Jeff Croft 關(guān)于為什么Django能夠作為任何語(yǔ)言任何應(yīng)用中的系統(tǒng)管理模塊的一個(gè)很好的解決方案。 3、 使用獨(dú)立的媒體服務(wù)器 在開(kāi)發(fā)環(huán)境中把靜態(tài)文件放在與Django項(xiàng)目所在的同一臺(tái)服務(wù)器中問(wèn)題并不大,但是卻不要使用在生產(chǎn)環(huán)境中,為什么?效率問(wèn)題。Jacobian.org給出了一個(gè)合理的解釋。通過(guò)一臺(tái)獨(dú)立的服務(wù)器來(lái)處理靜態(tài)文件,性能將得到有效的提升,如果不想買(mǎi)服務(wù)器的話,那么使用Amazon S3相對(duì)來(lái)更便宜。 4、 使用Debugger工具條 調(diào)試工具對(duì)任何一種語(yǔ)言來(lái)說(shuō)都是不可或缺的.他們能夠加快開(kāi)發(fā)的速度,指出潛在的缺陷. Rob Hudson開(kāi)發(fā)了一個(gè)對(duì)開(kāi)發(fā)人員非常有用django調(diào)試工具。 5、 使用Django單元測(cè)試 利用單元測(cè)試確保你代碼的改變和預(yù)期的一樣,而不會(huì)破壞任何老的代碼,以便向后兼容。Django一個(gè)強(qiáng)大的特性就是他能極其簡(jiǎn)單地寫(xiě)單元測(cè)試。Django也可直接使用python的文本測(cè)試和單元測(cè)試。Django的文檔提供了一個(gè)詳細(xì)的教程和樣例代碼關(guān)于怎樣做單元測(cè)試使得代碼正確地運(yùn)行,以及去除討厭的bug 6、 使用速查卡 這里有兩頁(yè)厚的速查卡,在 Django文檔中你可能翻來(lái)覆去要找半天的東西在這里一目了然。它包含如下幾個(gè)主題 模板: 模板標(biāo)簽及可選項(xiàng) 模板過(guò)濾器及可選項(xiàng) 日期格式化語(yǔ)法快速查閱 模型: 域和及選項(xiàng) 常用域的可選項(xiàng) 元類型可選項(xiàng) 模型管理可選項(xiàng) 表單: 域和可選項(xiàng) 常用域可選項(xiàng) 標(biāo)準(zhǔn)錯(cuò)誤消息鍵值 7、使用Django-chunks 除了使用Django的富文本編輯器創(chuàng)建塊更容易之外,Django-chunks同樣是用于模板中,這是重用代碼塊的必不可少的工具。 8、 使用Memcache 如果性能在你的Django項(xiàng)目中已經(jīng)成為一個(gè)棘手的問(wèn)題,那么你將需要使用一些緩存策略。然而Django為緩存提供很多的選擇。目前最好的無(wú)疑是Memcache,用Django安裝memcache非常地簡(jiǎn)單,如果你使用cmemcache模塊的時(shí)候。只要模塊安裝完成后,你僅僅修改一行配置項(xiàng),你的Django頁(yè)面變得輕快起來(lái)。 9、使用Django,心動(dòng)不如行動(dòng) 在你閱讀完這篇文章后如果你仍然不完全理解Django的強(qiáng)大,在你的下一個(gè)項(xiàng)目中使用Django的一個(gè)合符情理的理由就是:它能夠節(jié)省各種不同軟件設(shè)計(jì)的時(shí)間。Jeff Croft解釋為什么用Django創(chuàng)建一個(gè)項(xiàng)目比你自己設(shè)計(jì)出來(lái)的更高效。Django允許你擴(kuò)展自己的Web站點(diǎn),不需要擔(dān)心設(shè)計(jì)或者代碼以及數(shù)據(jù)庫(kù)的兼容性,它會(huì)工作地很棒。
import os
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
TEMPLATE_DIRS = (
BASE_DIR + '/templates',
)
2、 嘗試把Django admin應(yīng)用到PHP項(xiàng)目中
相關(guān)文章
Python DNS查詢放大攻擊實(shí)現(xiàn)原理解析
這篇文章主要介紹了Python DNS查詢放大攻擊實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-10-10使用sklearn的cross_val_score進(jìn)行交叉驗(yàn)證實(shí)例
今天小編就為大家分享一篇使用sklearn的cross_val_score進(jìn)行交叉驗(yàn)證實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02如何查看Django ORM執(zhí)行的SQL語(yǔ)句的實(shí)現(xiàn)
這篇文章主要介紹了如何查看Django ORM執(zhí)行的SQL語(yǔ)句的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04python正則表達(dá)式匹配[]中間為任意字符的實(shí)例
今天小編就為大家分享一篇python正則表達(dá)式匹配[]中間為任意字符的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12python3.4 將16進(jìn)制轉(zhuǎn)成字符串的實(shí)例
今天小編就為大家分享一篇python3.4 將16進(jìn)制轉(zhuǎn)成字符串的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06Python實(shí)現(xiàn)豎排打印傳單手機(jī)號(hào)碼易撕條
這篇文章主要介紹了Python實(shí)現(xiàn)豎排打印傳單手機(jī)號(hào)碼易撕條,代碼非常簡(jiǎn)單,功能很實(shí)用,推薦給大家,有需要的小伙伴,參考下2015-03-03解決python-docx打包之后找不到default.docx的問(wèn)題
今天小編就為大家分享一篇解決python-docx打包之后找不到default.docx的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02Python sorted排序方法如何實(shí)現(xiàn)
這篇文章主要介紹了Python sorted排序方法如何實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03python實(shí)現(xiàn)簡(jiǎn)單加密解密機(jī)制
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單加密解密機(jī)制,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03