django相關資源

轉自:http://haoluobo.com/trac/wiki/Django

Django

我和Django

我使用Python的很大一部分原因就是django。雖然在以前也用過python,不過始終沒有什麼特別的感覺。然後接觸到了django。可以說django非常對我的胃口,特別是他的admin給人的感覺特別的棒。
django是個獨斷且固執的框架,框架裏用的組件都是自己寫的,而且往往會“知錯不改”。所以用django就要試着thing in django,接受django所謂的設計哲學,如果接受不了那就換pylons或ROR什麼的試試吧。
django並不完美,但這並不妨礙她成爲一個優秀的web開發框架。

資源

使用django搭建的站點

  •  addons.mozilla.org FireFox的插件下載網站,從google的統計數據上看PV大概在douban一半的樣子。技術細節方面可以看他們的 幻燈片。該網站完全開源,代碼可以在 這裏找到。
  •  disqus 這個網站在國內見得不多,可能很多人對它不太清楚。這個網站爲其他網站增加評論功能。據其介紹,該網站每月有1.2億的獨立訪問者。技術細節參考他們的 幻燈片
  •  bitbucket 基於HG的代碼託管網站。
  •  django官網 django官網本身使用django搭建,而其提供了代碼。django官網的大多功能由整合的trac實現,所以網站的django代碼沒幾行。
  •  海報網 據說這是目前流量最大的django站點。據我的瞭解,這個網站的流量也確實大的有些超乎想象,該網站應當有接近CSDN的流量。不過這個網站將大量的頁面進行了靜態化,如果以這個網站的標準來評價django的性能應當不夠客觀。
  •  好看簿 國內的另一個django站點,目前也有不錯的流量。作爲該網站的用戶,我感覺網站的響應速度並不怎麼快。看來好看簿在服務器優化方面還需要更多的努力。
  •  instagram 在短時間內迅速崛起的一個iPhone應用,用戶增長的非常快。從技術人員的角度看,instagram的迷人之處是在不足10人的情況下,服務了萬用戶。在這篇文章( What Powers Instagram: Hundreds of Instances, Dozens of Technologies)裏,有介紹他們所用到的一些技術。

django的開源項目

  •  pinax 這是我看到的最有價值的django開源項目。pinax可以看做是django的一個腳手架。她提供了快速開始一個新django項目的方法,同時對大量第三方app的使用方法進行了演示。django的app質量參差不齊,如果你想挑選app,那你可以看看pinax裏都集成了哪些app。pinax裏集成了的app通常都不至於太爛。此外pinax自身也帶了一些有用的app,比如blog等。
    如果你想以最快的速度瞭解pinax,可以去  http://cloud27.com/ 看看。這是一個用pinax搭建的SNS網站。
  •  Satchmo 網店系統。看她的介紹,似乎已經有不少人在用這東西了。
  •  LFS(Lightning Fast Shop) 網店系統,就Demo來看似乎是傾向於房屋交易平臺。陸陸續續的也有部分商業網站開始使用該系統了, 比如這個
  •  reviewboard 非常有前途的一個code review工具。最開始是 VMware在用,來後給開源了。

django相關資源

  •  twitter-bootstrap twitter開源的前端UI解決方案。對於缺少美工的開發者而言利用bootstrap可以很方便的作出還不錯的界面。
  •  Fabric Fabric是一個Python庫,可以通過SSH在多個host上批量執行任務。你可以編寫任務腳本,然後通過Fabric在本地就可以使用SSH在大量遠程服務器上自動運行。這些功能非常適合應用的自動化部署,或者執行系統管理任務。
  •  virtualenv 用於在一臺機器上創建多個獨立的python運行環境。使用virtualenv可以避免因在一臺機器上部署多個應用時出現的python庫版本衝突問題。
  •  Gunicorn Gunicorn 綠色獨角獸'是一個Python WSGI UNIX的HTTP服務器。有着不錯的性能,而且使用非常簡單。instagram使了Gunicorn。

django的可重用APP

 Django Packages 這個網站將可複用組件進行歸類,並以表格的形式進行對比。如果你想找Django可重用APP,去這個網站是最方便的。我這裏只對我認爲最優秀的Django APP進行整理。

項目組織

django沒有統一的項目組織規範,所以django項目的目錄組織方式都各不相同。爲解決該問題,也出現了一些相關項目。

  •  dj-scaffold 我的django腳手架項目。提供命令dj-scaffold.py,用於生成一個基礎的django項目模板。
  •  django-startproject 也是用於生成項目模板的項目。我的不少代碼都是參考這個項目的。
  •  playdoh 頂着mozilla的名頭,應當還是值得一看的吧。不過他的目錄組織方式不太符合我的習慣的。

CMS

  •  Django CMS Django CMS與其說是一個APP,倒不如說這是一個框架。Django CMS是目前開源Django CMS中功能最爲完善的一個。Django CMS提供了插件接口,可以方便的以插件的方式進行擴展。此外,目前現成可用的插件也已經有一大堆了。

Forum

Django的論壇APP不少,但到就目前而言,還沒有什麼殺手級的APP。

  •  DjangoBB 功能比較完整。不過我認爲搞的有些複雜了,易用性一般。如果你貪圖它相對強大的功能,又不怕麻煩的話,可以試試。
  •  LBForum 我開發的論壇應用。優點是界面漂亮(提供了 FluxBB V2EX兩種界面風格),部署簡單,功能方面就不怎麼強大了。如果你想要一個簡單易用的Django論壇系統,推薦這個。

Blog

用Django寫Blog數量衆多(可能是數量最多的Django應用了),我雖然也寫了一個,但我是不會去用這些Django博客。Blog很重要的一點是那些漂亮的模板。如果使用這些小衆的東西,實在是難以找到讓人滿意的模板。

  •  zinnia 功能比較完善的一個Django博客,界面比較清爽。簡單的看了一下她的代碼,感覺寫的很規範。比較看好這個博客系統。如果你想用django搭建自己的博客,推薦試試。

調試

  •  django-debug-toolbar 爲django站點增加調試功能,支持查看django生成的sql語句,及sql的執行時間等,功能強大。不過由於該組件使用了jquery,似乎會使用部分使用了jquery的站點無法正常工作。
  •  sentry  disqus的開源項目。將django的所有異常保存到數據庫,並提供異常的察看界面。
  •  django-devserver django開發服務器擴展。將SQL語句/執行時間等調試信息直接顯示在控制檯上,而且是以彩色的方式顯示。

數據庫升級

在項目開發過程中表結構的變動總是難免,django目前還不支持表結構的自動更新,不過相關的第三方app倒不少。

  •  South South已經比較成熟了,就目前而言South是該類APP的不二選擇。

註冊、認證

  •  django-userena 功能完善的註冊模塊,支持用戶信息維護,頭像上傳,甚至還帶了個站內消息模塊。推薦使用。
  •  Django-Socialauth 支持使用Facebook, Yahoo, Gmail, Twitter and Openid的帳號進行登陸認證。
  •  django-socialregistration 支持OpenID, OAuth and Facebook的認證。似乎和Django-Socialauth差不多。沒有對比過,希望用過的朋友給些心得。
  •  django-registration 註冊功能,支持帳戶的郵件激活。該項目似乎已經停止維護了。可作爲參考項目,不太建議在新項目中使用了。
  •  django-auth-ldap Django的LDAP認證支持,使用LDAP的集成變得簡單。

權限認證

  •  django-guardian Django提供了精確到對象的權限控制API(比如那些人有權限編輯具體的某個文檔),但Django並沒有相關的實現。django-guardian給出了該API的實現,讓你可以實現對具體對象的權限控制。

css/js靜態資源壓縮

  •  django_compressor 自動對django模板中的css/js進行壓縮處理,加快網站的加載速度。支持coffeescript以及less。

Tagging

爲站點增加Tag功能

Avatar(用戶頭像)

  •  django-avatar 當前首選。感覺複雜了些,而且我覺得支持多個頭像啥的功能不是很實用,還增加了複雜度。
  •  django-simple-avatar 我自己寫的avatar APP,其中的不少代碼來源於django-avatar。用起來比django-avatar要簡單些。

翻頁

  •  django-pagination 一組翻頁相關的utils,包括用於實現翻頁的tag等。使用起來非常簡單。是目前使用最多的分頁APP。
  •  django-paging 另一個翻頁的APP,優點是支持jinja2作爲模板。如果模板用了jinja2,可以考慮下。

搜索

  •  Haystack 全文搜索組件,提供對 Solr  Whoosh  Xapian的支持。就它的quick start來看是挺易用的。該項目託管在github,似乎還挺有人氣。

RESTful

  •  django-tastypie 編寫RESTful API用的APP,此類APP中這個目前活躍程度以及發展情況來看是最佳選擇。
  •  django-piston bitbucket在使用,不過活躍程度比較低。用來寫RESTful API的東西,據說很方便。未使用過,不多做評論。

消息隊列(異步執行)

  •  django-celery web應用中難免會有些很費時的操作需要作成異步處理(比如在後臺發送郵件,更新索引等),django-celery就是爲解決該問題出現的。

其他

  •  django-extensions django一些擴展的集合。東西比較雜,具體使用還是去看看她的文檔吧。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章