歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Django資源分享

Django資源分享

日期:2017/2/27 16:00:18   编辑:Linux教程

我和Django

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

資源

  • django官網
  • django文檔
  • Django Step by Step 曾是最佳的django入門教程,只是這個教程是針對0.95的,現在不少地方已經有所變動。注:這裡有個基於Django1.1的 2010版,看樣子似乎是轉帖,不知道原帖地址。
  • django可復用app設計
  • django最佳實踐 django可復用app設計 的一個更好的分支。個人為人這個文檔是每個django開發人員必讀的。
  • django最佳實踐 中文翻譯
  • django book 一本免費的django電子書
  • django book 中文翻譯
  • djangosnippets 一個關於django的代碼片段網站,在裡面可以找到一些應用的django代碼片段。站點本身是用django寫的,且開發源碼。
  • djangosites 這個網站裡介紹了很多實用django搭建的站點。而且可以從這裡找到很多帶源代碼的django站點。不過我個人覺得裡面沒有多少值得參考的站點代碼。
  • DjangoCon 裡面可以找到一些不錯的技術主題
  • Django Packages 幫助尋找Django可服用組件的網站。將可復用組件進行歸類,並以表格的形式進行對比。

使用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功能

  • django-taggit 取代 django-tagging,成為Django的首選Tagging APP。不過我對這個APP的性能始終有所顧慮。

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一些擴展的集合。東西比較雜,具體使用還是去看看她的文檔吧。
Copyright © Linux教程網 All Rights Reserved