[轉]Django 好用的第三方包

1. Python social auth

一款社交賬號認證/註冊機制,支持Django、Flask、Webpy等在內的多個開發框架,提供了約50多個服務商的授權認證支持,如Google、Twitter、新浪微博等站點,配置簡單。

GitHub 地址:pennersr/django-allauth

文檔地址:Welcome to django-allauth!

點評:增強 Django 內置的 django.contrib.auth 模塊,提供登錄、註冊、郵件驗證、找回密碼等一切用戶驗證相關的功能。另外還提供 OAuth 第三方登錄功能,例如國內的微博、微信登錄,國外的 GitHub、Google、facebook 登錄等,幾乎囊括了大部分熱門的第三方賬戶登錄。配置簡單,開箱即用。

pip install python-social-auth

2. Django Guardian

Django默認沒有提供對象(Object)級別的權限控制,我們可以通過該擴展來幫助Django實現對象級別的權限控制。

pip install django-guardian

3. Django OAuth Toolkit

可以幫助Django項目實現數據、邏輯的OAuth2功能,可與Django REST框架完美整合起來。

pip install django-oauth-toolkit

4. django-allauth

可用於賬號註冊、管理和第三方社交賬號的認證。

django-allauth 是一個能夠解決你的註冊和認證需求的、可重用的 Django 應用。無論你需要構建本地註冊系統還是社交賬戶註冊系統,django-allauth 都能夠幫你做到。

這個應用支持多種認證體系,比如用戶名或電子郵件。一旦用戶註冊成功,它還可以提供從無需認證到電子郵件認證的多種賬戶驗證的策略。同時,它也支持多種社交賬戶和電子郵件賬戶。它還支持插拔式註冊表單,可讓用戶在註冊時回答一些附加問題。

django-allauth 支持多於 20 種認證提供者,包括 Facebook、Google、微博 和 微信。如果你發現了一個它不支持的社交網站,很有可能通過第三方插件提供該網站的接入支持。這個項目還支持自定義後端,可以支持自定義的認證方式,對每個有定製認證需求的人來說這都很棒。

django-allauth 易於配置,且有完善的文檔。該項目通過了很多測試,所以你可以相信它的所有部件都會正常運作。

pip install django-allauth

5. Celery

用來管理異步、分佈式的消息作業隊列,可用於生產系統來處理百萬級別的任務。

django-celery是django web開發中執行異步任務或定時任務的最佳選擇。它的應用場景包括:

  • 異步任務: 當用戶觸發一個動作需要較長時間來執行完成時,可以把它作爲任務交給celery異步執行,執行完再返回給用戶。這點和你在前端使用ajax實現異步加載有異曲同工之妙。
  • 定時任務。假設有多臺服務器,多個任務,定時任務的管理是很困難的,你要在不同電腦上寫不同的crontab,而且還不好管理。Celery可以幫助我們快速在不同的機器設定不同任務。
  • 其他可以異步執行的任務。比如發送短信,郵件,推送消息,清理/設置緩存等。這點還是比較有用的。
pip install Celery

6. Django REST 框架

構建REST API的優秀框架,可管理內容協商、序列化、分頁等,開發者可以在瀏覽器中瀏覽構建的API。

REST API 正在迅速成爲現代 Web 應用的標準功能。 API 就是簡單的使用 JSON 對話而不是 HTML,當然你可以只用 Django 做到這些。你可以製作自己的視圖,設置合適的 Content-Type,然後返回 JSON 而不是渲染後的 HTML 響應。這是在像 Django Rest Framework(下稱 DRF)這樣的 API 框架發佈之前,大多數人所做的。

如果你對 Django 的視圖類很熟悉,你會覺得使用 DRF 構建 REST API 與使用它們很相似,不過 DRF 只針對特定 API 使用場景而設計。一般的 API 設置只需要一點代碼,所以我們沒有提供一份讓你興奮的示例代碼,而是強調了一些可以讓你生活的更舒適的 DRF 特性:

  • 可自動預覽的 API 可以使你的開發和人工測試輕而易舉。你可以查看 DRF 的示例代碼。你可以查看 API 響應,並且不需要你做任何事就可以支持 POST/PUT/DELETE 類型的操作。
  • 便於集成各種認證方式,如 OAuth, Basic Auth, 或API Tokens。
  • 內建請求速率限制。
  • 當與 django-rest-swagger 組合使用時,API 文檔幾乎可以自動生成。
  • 廣泛的第三方庫生態。
pip install djangorestframework

7. Django stored messages

可以很好地集成在Django的消息框架中(django.contrib.messages)並讓用戶決定會話過程中存儲在數據庫中的消息。

8. django-cors-headers

一款設置CORS(Cross-Origin Resource Sharing)標頭的應用,基於XmlHttpRequest,對管理Django應用中的跨域請求非常有幫助。

pip install django-cors-headers

9. Debug toolbar

可在設置面板顯示當前請求/響應的各種調試信息。除了本身提供的操作面板外,還有來自社區的多個第三方面板。

該工具給django web開發提供了強大的調試功能,包括查看執行的sql語句,db查詢次數,request,headers,調試概覽等。 通過安裝插件Pympler,你還可以瞭解內存使用情況。

pip install django-debug-toolbar

10. Django Storages

可使靜態資源方便地存儲在外部服務上。安裝後只需運行“python manage.py collectstatic”命令就可以將全部改動的靜態文件複製到選定的後端。可結合庫“python-boto”一起使用,將靜態文件存儲到Amazon S3上。

pip install django-storages

11. Django Pipeline

靜態資源管理應用,支持連接和壓縮CSS/Javascript文件、支持CSS和Javascript的多種編譯器、內嵌JavaScript模板,可充分允許自定義。

pip install django-pipeline

12. Django Compressor

可將頁面中鏈接的以及直接編寫的JavaScript和CSS打包到一個單一的緩存文件中,以減少頁面對服務器的請求數,加快頁面的加載速度。

pip install django_compressor

13. Reversion

爲模型提供版本控制功能,稍微配置後,就可以恢復已經刪除的模型或回滾到模型歷史中的任何一點。最新版本支持Django 1.6。

pip install django-reversion

14. Django extensions

Django框架的擴展功能集合,包括management命令擴展、數據庫字段擴展、admin後臺擴展等。

pip install django-extensions

15. Django braces

是一系列可複用的行爲、視圖模型、表格和其他組件的合集。

pip install django-braces

16.django-haystack - 全文檢索引擎

全文檢索不同於標題的簡單匹配,是一件技術難度比較高的活。當文章很長時,你很難找到精確的匹配,同時搜索全文需要消耗大量的計算資源。有了haystack,你可以直接django中直接添加搜索功能,像搜索標題一樣搜索全文,而無需關注索引建立、搜索解析等技術問題。haystack支持多種搜索引擎,不僅僅是whoosh,使用solr、elastic search等搜索,也可通過haystack,而且直接切換引擎即可,甚至無需修改搜索代碼。

GitHub 地址:Welcome to Haystack!

文檔地址:django-haystack/django-haystack

17.django-ckeditor - 富文本編輯器

django沒有提供官方的富文本編輯器,而ckeditor恰好是內容型網站後臺管理中不可或缺的控件。ckeditor是一款基於javascript,使用非常廣泛的開源網頁編輯器。它允許用戶直接編寫圖文,插入列表和表格,並支持文本和HTML格式代碼輸入。

GitHub 地址:django-ckeditor/django-ckeditor

18.django-imagekit - 自動化處理圖像

現代網站開發一般免不了處理一些圖片,例如頭像、用戶上傳的圖片等內容。django-imagekit 幫你配合 django 的 model 模塊自動完成圖片的裁剪、壓縮、生成縮略圖、加水印等一系列圖片相關的操作。

GitHub 地址:matthewwithanm/django-imagekit

文檔地址:Installation - ImageKit 3.2.6 documentation

19.django-xadmin - 更美觀更強大的後臺

如果你不喜歡django自帶後臺admin簡陋的樣式,你可以使用xadmin。xadmin是基於bootstrap和admin的一個更強大的後臺管理系統。應該會給有強迫症的你帶來驚喜。

GitHub 地址:sshwsfc/xadmin

文檔地址:Welcome to Django Xadmin’s Documentation!

20.django-constance - 常量管理

有時我們會在 django 的 settings 中設置一些常量,但是有可能會進行變更。利用這個包,只需簡單的配置就可以自動生成 admin 管理後臺可以修改管理常量。

Django 的好處就是大而全,不僅內置了 ORM、表單、模板引擎、用戶系統等,而且第三方應用的生態也是十分完善,開發中大部分常見的功能都能找到對應的第三方實現。在這裏給大家推薦 10 個十分優秀的 Django 第三方庫(GitHub 星星數基本都在 1000 以上,而且都在持續維護與更新中)。雖然這些庫很適合用於社交網站的開發,但也有很大一部分是通用的,可以用於任何用 Django 開發的項目。使用這些庫將大大提高開發效率和生產力。

21.django-model-utils

簡介:增強 Django 的 model 模塊。內置了一些通用的 model Mixin,例如 TimeStampedModel 爲模型提供一個創建時間和修改時間的字段,還有一些有用的 Field,幾乎每個 Django 項目都能用得上。

GitHub 地址:jazzband/django-model-utils

文檔地址:django-model-utils - django-model-utils 3.2.0 documentation

22.django-crispy-forms

簡介:大大增強 Django 內置的表單功能,Django 內置的表單生成原生的 HTML 表單代碼還可以,但爲其設置樣式是一個麻煩的事情。django-crispy-forms 幫助你使用一行代碼渲染一個 Bootstrap 樣式的表單,當然它還支持其它一些熱門的 CSS 框架樣式的渲染。

GitHub 地址:django-crispy-forms/django-crispy-forms

文檔地址:Forms have never been this crispy

23.django-mptt

簡介:配合 Django 的 ORM 系統,爲數據庫的記錄生成樹形結構,並提供便捷的操作樹型記錄的 API。例如可以使用它實現一個多級的評論系統。總之,只要你的數據結構可能需要使用樹來表示,django-mptt 將大大提高你的開發效率。

GitHub 地址:django-mptt/django-mptt

文檔地址:Django MPTT documentation

24.django-contrib-comments

簡介:用於提供評論功能,最先集成在 django 的 contrib 內置庫裏,後來被移出來單獨維護。這個評論庫提供了基本的評論功能,但是隻支持單級評論。好在這個庫具有很好的拓展性,基於上邊提到的 django-mptt,就可以構建一個支持層級評論的評論庫。

GitHub 地址:django/django-contrib-comments

文檔地址:Django “excontrib” Comments

25.django-brace

簡介:django 內置的 class based view 很 awesome,但還有一些通用的類視圖沒有包含在 django 源碼中,這個庫補充了更多常用的類視圖。類視圖是 django 的一個很重要也很優雅的特性,使用類視圖可以減少視圖函數的代碼編寫量、提高視圖函數的代碼複用性等。

GitHub 地址:brack3t/django-braces

文檔地址:Welcome to django-braces’s documentation!

點評:深入學習類視圖可以看Django類視圖源碼分析。

26.django-notifications-hq

簡介:爲你的網站提供類似於 GitHub 這樣的通知功能。未讀通知數、通知列表、標爲已讀等等。

GitHub 地址:django-notifications/django-notifications

文檔地址:django-notifications-hq

27.django-simple-captcha

簡介:配合 django 的表單模塊,方便地爲表單添加一個驗證碼字段。對驗證性要求不高的需求,例如註冊表單防止機器人自動註冊等使用起來非常方便。

GitHub 地址:mbi/django-simple-captcha

文檔地址:Django Simple Captcha

28.django-anymail

簡介:配合 django 的 email 模塊,只需簡單配置,就可以使用 Mailgun、SendGrid 等發送郵件。

GitHub 地址:anymail/django-anymail

文檔地址:Anymail: Django email integration for transactional ESPs

29.django-activity-stream

簡介:社交類網站免不了關注、收藏、點贊、用戶動態等功能,這一個 app 全搞定。甚至用它實現一個朋友圈也不是不可能。

GitHub 地址:justquick/django-activity-stream

文檔地址:Django Activity Stream Documentation

30.Datatables

是一款jquery表格插件。它是一個高度靈活的工具,可以將任何HTML表格添加高級的交互功能。

官網:Table plug-in for jQuery 中文網站:Datatables 中文網

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章