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