Django 的好處就是大而全,不僅內(nèi)置了 ORM屹篓、表單、模板引擎匙奴、用戶系統(tǒng)等堆巧,而且第三方應(yīng)用的生態(tài)也是十分完善,開發(fā)中大部分常見的功能都能找到對(duì)應(yīng)的第三方實(shí)現(xiàn)泼菌。在這里給大家推薦 10 個(gè)十分優(yōu)秀的 Django 第三方庫(kù)(GitHub 星星數(shù)基本都在 1000 以上谍肤,而且都在持續(xù)維護(hù)與更新中)。雖然這些庫(kù)很適合用于社交網(wǎng)站的開發(fā)哗伯,但也有很大一部分是通用的荒揣,可以用于任何用 Django 開發(fā)的項(xiàng)目。使用這些庫(kù)將大大提高開發(fā)效率和生產(chǎn)力焊刹。
django-model-utils
簡(jiǎn)介:Django model mixins and utilities.
GitHub 地址:https://github.com/jazzband/django-model-utils
文檔地址:http://django-model-utils.readthedocs.io/en/latest/
點(diǎn)評(píng):增強(qiáng) Django 的 model 模塊系任。內(nèi)置了一些通用的 model Mixin,例如 TimeStampedModel
為模型提供一個(gè)創(chuàng)建時(shí)間和修改時(shí)間的字段虐块,還有一些有用的 Field俩滥,幾乎每個(gè) Django 項(xiàng)目都能用得上。
django-allauth
簡(jiǎn)介:Integrated set of Django applications addressing authentication, registration, account management as well as 3rd party (social) account authentication.
GitHub 地址:https://github.com/pennersr/django-allauth
文檔地址:https://django-allauth.readthedocs.io/en/latest/
點(diǎn)評(píng):增強(qiáng) Django 內(nèi)置的 django.contrib.auth 模塊贺奠,提供登錄举农、注冊(cè)、郵件驗(yàn)證敞嗡、找回密碼等一切用戶驗(yàn)證相關(guān)的功能颁糟。另外還提供 OAuth 第三方登錄功能航背,例如國(guó)內(nèi)的微博、微信登錄棱貌,國(guó)外的 GitHub玖媚、Google、facebook 登錄等婚脱,幾乎囊括了大部分熱門的第三方賬戶登錄今魔。配置簡(jiǎn)單,開箱即用障贸。
django-crispy-forms
簡(jiǎn)介:The best way to have DRY Django forms. The app provides a tag and filter that lets you quickly render forms in a div format while providing an enormous amount of capability to configure and control the rendered HTML.
GitHub 地址:https://github.com/django-crispy-forms/django-crispy-forms
文檔地址:http://django-crispy-forms.rtfd.org/
點(diǎn)評(píng):大大增強(qiáng) Django 內(nèi)置的表單功能错森,Django 內(nèi)置的表單生成原生的 HTML 表單代碼還可以,但為其設(shè)置樣式是一個(gè)麻煩的事情篮洁。django-crispy-forms 幫助你使用一行代碼渲染一個(gè) Bootstrap 樣式的表單涩维,當(dāng)然它還支持其它一些熱門的 CSS 框架樣式的渲染。
django-mptt
簡(jiǎn)介:Utilities for implementing a modified pre-order traversal tree in django.
GitHub 地址:https://github.com/django-mptt/django-mptt
文檔地址:https://django-mptt.readthedocs.io/
點(diǎn)評(píng):配合 Django 的 ORM 系統(tǒng)袁波,為數(shù)據(jù)庫(kù)的記錄生成樹形結(jié)構(gòu)瓦阐,并提供便捷的操作樹型記錄的 API。例如可以使用它實(shí)現(xiàn)一個(gè)多級(jí)的評(píng)論系統(tǒng)篷牌∷總之,只要你的數(shù)據(jù)結(jié)構(gòu)可能需要使用樹來(lái)表示枷颊,django-mptt 將大大提高你的開發(fā)效率戳杀。
django-contrib-comments
簡(jiǎn)介:Django used to include a comments framework; since Django 1.6 it's been separated to a separate project. This is that project.
This framework can be used to attach comments to any model, so you can use it for comments on blog entries, photos, book chapters, or anything else.
GitHub 地址:https://github.com/django/django-contrib-comments
文檔地址:https://django-contrib-comments.readthedocs.io/
點(diǎn)評(píng):用于提供評(píng)論功能,最先集成在 django 的 contrib 內(nèi)置庫(kù)里夭苗,后來(lái)被移出來(lái)單獨(dú)維護(hù)(可能覺得評(píng)論并非是一個(gè)通用的庫(kù)吧)信卡。這個(gè)評(píng)論庫(kù)提供了基本的評(píng)論功能,但是只支持單級(jí)評(píng)論听诸。好在這個(gè)庫(kù)具有很好的拓展性坐求,基于上邊提到的 django-mptt,就可以構(gòu)建一個(gè)支持層級(jí)評(píng)論的評(píng)論庫(kù)晌梨,就像 我的博客評(píng)論區(qū) 中展示的這樣(個(gè)人博客的評(píng)論模塊就是基于 django-contrib-comments 和 django-mptt 寫的)桥嗤。
django-imagekit
簡(jiǎn)介:Automated image processing for Django.
GitHub 地址:https://github.com/matthewwithanm/django-imagekit
文檔地址:http://django-imagekit.rtfd.org/
點(diǎn)評(píng):社交類網(wǎng)站免不了處理一些圖片,例如頭像仔蝌、用戶上傳的圖片等內(nèi)容泛领。django-imagekit 幫你配合 django 的 model 模塊自動(dòng)完成圖片的裁剪、壓縮敛惊、生成縮略圖等一系列圖片相關(guān)的操作渊鞋。
django-brace
簡(jiǎn)介:Reusable, generic mixins for Django
GitHub 地址:https://github.com/brack3t/django-braces
文檔地址:http://django-braces.readthedocs.io/en/latest/index.html
點(diǎn)評(píng):django 內(nèi)置的 class based view 很 awesome,但還有一些通用的類視圖沒有包含在 django 源碼中,這個(gè)庫(kù)補(bǔ)充了更多常用的類視圖锡宋。類視圖是 django 的一個(gè)很重要也很優(yōu)雅的特性儡湾,使用類視圖可以減少視圖函數(shù)的代碼編寫量、提高視圖函數(shù)的代碼復(fù)用性等执俩。深入學(xué)習(xí)類視圖可以看Django類視圖源碼分析徐钠。
django-notifications-hq
簡(jiǎn)介:GitHub notifications alike app for Django
GitHub 地址:https://github.com/django-notifications/django-notifications
文檔地址:https://pypi.python.org/pypi/django-notifications-hq/
點(diǎn)評(píng):沒什么好說(shuō)的,為你的網(wǎng)站提供類似于 GitHub 這樣的通知功能役首。未讀通知數(shù)尝丐、通知列表、標(biāo)為已讀等等衡奥。
django-simple-captcha
簡(jiǎn)介:Django Simple Captcha is an extremely simple, yet highly customizable Django application to add captcha images to any Django form.
GitHub 地址:https://github.com/mbi/django-simple-captcha
文檔地址:http://django-simple-captcha.readthedocs.io/en/latest/
點(diǎn)評(píng):配合 django 的表單模塊爹袁,方便地為表單添加一個(gè)驗(yàn)證碼字段。對(duì)驗(yàn)證性要求不高的需求矮固,例如注冊(cè)表單防止機(jī)器人自動(dòng)注冊(cè)等使用起來(lái)非常方便失息。
django-anymail
簡(jiǎn)介:Django email backends and webhooks for Mailgun, Mailjet, Postmark, SendGrid, SparkPost and more
GitHub 地址:https://github.com/anymail/django-anymail
文檔地址:https://anymail.readthedocs.io/
點(diǎn)評(píng):配合 django 的 email 模塊,只需簡(jiǎn)單配置乏屯,就可以使用 Mailgun根时、SendGrid 等發(fā)送郵件瘦赫。
django-activity-stream
簡(jiǎn)介:Generate generic activity streams from the actions on your site. Users can follow any actors' activities for personalized streams.
GitHub 地址:https://github.com/justquick/django-activity-stream
文檔地址:http://django-activity-stream.rtfd.io/en/latest/
點(diǎn)評(píng):社交類網(wǎng)站免不了關(guān)注辰晕、收藏、點(diǎn)贊确虱、用戶動(dòng)態(tài)等功能含友,這一個(gè) app 全搞定。甚至用它實(shí)現(xiàn)一個(gè)朋友圈也不是不可能校辩。