30款Django 經常使用的軟件包

30款Django 經常使用的軟件包

Django是一款高級的Python Web框架,能夠幫助開發者快速建立web應用。咱們這裏整理了30款Django開發中經常使用的軟件包,學會使用它們能夠節省大量開發時間,提升開發效率。下面一塊兒來看下。
認證和受權javascript

1. Python social auth

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

GitHub 地址:https://github.com/pennersr/django-allauth前端

文檔地址:https://django-allauth.readthedocs.io/en/latest/java

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

pip install python-social-authjquery

2. Django Guardian

Django默認沒有提供對象(Object)級別的權限控制,咱們能夠經過該擴展來幫助Django實現對象級別的權限控制。git

pip install django-guardiangithub

3. Django OAuth Toolkit

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

pip install django-oauth-toolkitajax

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 地址:https://django-haystack.readthedocs.io/en/master/

文檔地址:https://github.com/django-haystack/django-haystack

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

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

GitHub 地址:https://github.com/django-ckeditor/django-ckeditor

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

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

GitHub 地址:https://github.com/matthewwithanm/django-imagekit

文檔地址:http://django-imagekit.rtfd.org/

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

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

GitHub 地址:https://github.com/sshwsfc/xadmin

文檔地址:https://xadmin.readthedocs.io/en/docs-chinese/

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 地址:https://github.com/jazzband/django-model-utils

文檔地址:http://django-model-utils.readthedocs.io/en/latest/

22.django-crispy-forms

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

GitHub 地址:https://github.com/django-crispy-forms/django-crispy-forms

文檔地址:http://django-crispy-forms.rtfd.org/

23.django-mptt

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

GitHub 地址:https://github.com/django-mptt/django-mptt

文檔地址:https://django-mptt.readthedocs.io/

24.django-contrib-comments

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

GitHub 地址:https://github.com/django/django-contrib-comments

文檔地址:https://django-contrib-comments.readthedocs.io/

25.django-brace

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

GitHub 地址:https://github.com/brack3t/django-braces

文檔地址:http://django-braces.readthedocs.io/en/latest/index.html

點評:深刻學習類視圖能夠看Django類視圖源碼分析。

26.django-notifications-hq

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

GitHub 地址:https://github.com/django-notifications/django-notifications

文檔地址:https://pypi.python.org/pypi/django-notifications-hq/

27.django-simple-captcha

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

GitHub 地址:https://github.com/mbi/django-simple-captcha

文檔地址:http://django-simple-captcha.readthedocs.io/en/latest/

28.django-anymail

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

GitHub 地址:https://github.com/anymail/django-anymail

文檔地址:https://anymail.readthedocs.io/

29.django-activity-stream

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

GitHub 地址:https://github.com/justquick/django-activity-stream

文檔地址:http://django-activity-stream.rtfd.io/en/latest/

30.Datatables

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

官網:https://datatables.net/ 中文網站:http://datatables.club/

———————————————— 版權聲明:本文爲CSDN博主「菲宇」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接及本聲明。 原文連接:http://www.javashuo.com/article/p-zsxusgyf-q.html

相關文章
相關標籤/搜索