您好,登錄后才能下訂單哦!
這篇文章主要介紹“Django開發(fā)中常用的包有哪些”,在日常操作中,相信很多人在Django開發(fā)中常用的包有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Django開發(fā)中常用的包有哪些”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!
1. Python social auth
一款社交賬號(hào)認(rèn)證/注冊(cè)機(jī)制,支持Django、Flask、Webpy等在內(nèi)的多個(gè)開發(fā)框架,提供了約50多個(gè)服務(wù)商的授權(quán)認(rèn)證支持,如Google、Twitter、新浪微博等站點(diǎn),配置簡(jiǎn)單。
GitHub 地址:pennersr/django-allauth
文檔地址:Welcome to django-allauth!
點(diǎn)評(píng):增強(qiáng) Django 內(nèi)置的 django.contrib.auth 模塊,提供登錄、注冊(cè)、郵件驗(yàn)證、找回密碼等一切用戶驗(yàn)證相關(guān)的功能。另外還提供 OAuth 第三方登錄功能,例如國內(nèi)的微博、微信登錄,國外的 GitHub、Google、facebook 登錄等,幾乎囊括了大部分熱門的第三方賬戶登錄。配置簡(jiǎn)單,開箱即用。
pip install python-social-auth
2. Django Guardian
Django默認(rèn)沒有提供對(duì)象(Object)級(jí)別的權(quán)限控制,我們可以通過該擴(kuò)展來幫助Django實(shí)現(xiàn)對(duì)象級(jí)別的權(quán)限控制。
pip install django-guardian
3. Django OAuth Toolkit
可以幫助Django項(xiàng)目實(shí)現(xiàn)數(shù)據(jù)、邏輯的OAuth3功能,可與Django REST框架完美整合起來。
pip install django-oauth-toolkit
4. django-allauth
可用于賬號(hào)注冊(cè)、管理和第三方社交賬號(hào)的認(rèn)證。
django-allauth 是一個(gè)能夠解決你的注冊(cè)和認(rèn)證需求的、可重用的 Django 應(yīng)用。無論你需要構(gòu)建本地注冊(cè)系統(tǒng)還是社交賬戶注冊(cè)系統(tǒng),django-allauth 都能夠幫你做到。
這個(gè)應(yīng)用支持多種認(rèn)證體系,比如用戶名或電子郵件。一旦用戶注冊(cè)成功,它還可以提供從無需認(rèn)證到電子郵件認(rèn)證的多種賬戶驗(yàn)證的策略。同時(shí),它也支持多種社交賬戶和電子郵件賬戶。它還支持插拔式注冊(cè)表單,可讓用戶在注冊(cè)時(shí)回答一些附加問題。
django-allauth 支持多于 20 種認(rèn)證提供者,包括 Facebook、Google、微博 和 微信。如果你發(fā)現(xiàn)了一個(gè)它不支持的社交網(wǎng)站,很有可能通過第三方插件提供該網(wǎng)站的接入支持。這個(gè)項(xiàng)目還支持自定義后端,可以支持自定義的認(rèn)證方式,對(duì)每個(gè)有定制認(rèn)證需求的人來說這都很棒。
django-allauth 易于配置,且有完善的文檔。該項(xiàng)目通過了很多測(cè)試,所以你可以相信它的所有部件都會(huì)正常運(yùn)作。
pip install django-allauth
5. Celery
用來管理異步、分布式的消息作業(yè)隊(duì)列,可用于生產(chǎn)系統(tǒng)來處理百萬級(jí)別的任務(wù)。
django-celery是django web開發(fā)中執(zhí)行異步任務(wù)或定時(shí)任務(wù)的最佳選擇。它的應(yīng)用場(chǎng)景包括:
異步任務(wù): 當(dāng)用戶觸發(fā)一個(gè)動(dòng)作需要較長(zhǎng)時(shí)間來執(zhí)行完成時(shí),可以把它作為任務(wù)交給celery異步執(zhí)行,執(zhí)行完再返回給用戶。這點(diǎn)和你在前端使用ajax實(shí)現(xiàn)異步加載有異曲同工之妙。
定時(shí)任務(wù)。假設(shè)有多臺(tái)服務(wù)器,多個(gè)任務(wù),定時(shí)任務(wù)的管理是很困難的,你要在不同電腦上寫不同的crontab,而且還不好管理。Celery可以幫助我們快速在不同的機(jī)器設(shè)定不同任務(wù)。
其他可以異步執(zhí)行的任務(wù)。比如發(fā)送短信,郵件,推送消息,清理/設(shè)置緩存等。這點(diǎn)還是比較有用的。
pip install Celery
6. Django REST 框架
構(gòu)建REST API的優(yōu)秀框架,可管理內(nèi)容協(xié)商、序列化、分頁等,開發(fā)者可以在瀏覽器中瀏覽構(gòu)建的API。
REST API 正在迅速成為現(xiàn)代 Web 應(yīng)用的標(biāo)準(zhǔn)功能。 API 就是簡(jiǎn)單的使用 JSON 對(duì)話而不是 HTML,當(dāng)然你可以只用 Django 做到這些。你可以制作自己的視圖,設(shè)置合適的 Content-Type,然后返回 JSON 而不是渲染后的 HTML 響應(yīng)。這是在像 Django Rest Framework(下稱 DRF)這樣的 API 框架發(fā)布之前,大多數(shù)人所做的。
如果你對(duì) Django 的視圖類很熟悉,你會(huì)覺得使用 DRF 構(gòu)建 REST API 與使用它們很相似,不過 DRF 只針對(duì)特定 API 使用場(chǎng)景而設(shè)計(jì)。一般的 API 設(shè)置只需要一點(diǎn)代碼,所以我們沒有提供一份讓你興奮的示例代碼,而是強(qiáng)調(diào)了一些可以讓你生活的更舒適的 DRF 特性:
可自動(dòng)預(yù)覽的 API 可以使你的開發(fā)和人工測(cè)試輕而易舉。你可以查看 DRF 的示例代碼。你可以查看 API 響應(yīng),并且不需要你做任何事就可以支持 POST/PUT/DELETE 類型的操作。
便于集成各種認(rèn)證方式,如 OAuth, Basic Auth, 或API Tokens。
內(nèi)建請(qǐng)求速率限制。
當(dāng)與 django-rest-swagger 組合使用時(shí),API 文檔幾乎可以自動(dòng)生成。
廣泛的第三方庫生態(tài)。
pip install djangorestframework
7. Django stored messages
可以很好地集成在Django的消息框架中(django.contrib.messages)并讓用戶決定會(huì)話過程中存儲(chǔ)在數(shù)據(jù)庫中的消息。
8. django-cors-headers
一款設(shè)置CORS(Cross-Origin Resource Sharing)標(biāo)頭的應(yīng)用,基于XmlHttpRequest,對(duì)管理Django應(yīng)用中的跨域請(qǐng)求非常有幫助。
pip install django-cors-headers
9. Debug toolbar
可在設(shè)置面板顯示當(dāng)前請(qǐng)求/響應(yīng)的各種調(diào)試信息。除了本身提供的操作面板外,還有來自社區(qū)的多個(gè)第三方面板。
該工具給django web開發(fā)提供了強(qiáng)大的調(diào)試功能,包括查看執(zhí)行的sql語句,db查詢次數(shù),request,headers,調(diào)試概覽等。 通過安裝插件Pympler,你還可以了解內(nèi)存使用情況。
pip install django-debug-toolbar
10. Django Storages
可使靜態(tài)資源方便地存儲(chǔ)在外部服務(wù)上。安裝后只需運(yùn)行“python manage.py collectstatic”命令就可以將全部改動(dòng)的靜態(tài)文件復(fù)制到選定的后端??山Y(jié)合庫“python-boto”一起使用,將靜態(tài)文件存儲(chǔ)到Amazon S3上。
pip install django-storages
11. Django Pipeline
靜態(tài)資源管理應(yīng)用,支持連接和壓縮CSS/Javascript文件、支持CSS和Javascript的多種編譯器、內(nèi)嵌JavaScript模板,可充分允許自定義。
pip install django-pipeline
12. Django Compressor
可將頁面中鏈接的以及直接編寫的JavaScript和CSS打包到一個(gè)單一的緩存文件中,以減少頁面對(duì)服務(wù)器的請(qǐng)求數(shù),加快頁面的加載速度。
pip install django_compressor
13. Reversion
為模型提供版本控制功能,稍微配置后,就可以恢復(fù)已經(jīng)刪除的模型或回滾到模型歷史中的任何一點(diǎn)。最新版本支持Django 1.6。
pip install django-reversion
14. Django extensions
Django框架的擴(kuò)展功能集合,包括management命令擴(kuò)展、數(shù)據(jù)庫字段擴(kuò)展、admin后臺(tái)擴(kuò)展等。
pip install django-extensions
15. Django braces
是一系列可復(fù)用的行為、視圖模型、表格和其他組件的合集。
pip install django-braces
16.django-haystack - 全文檢索引擎
全文檢索不同于標(biāo)題的簡(jiǎn)單匹配,是一件技術(shù)難度比較高的活。當(dāng)文章很長(zhǎng)時(shí),你很難找到精確的匹配,同時(shí)搜索全文需要消耗大量的計(jì)算資源。有了haystack,你可以直接django中直接添加搜索功能,像搜索標(biāo)題一樣搜索全文,而無需關(guān)注索引建立、搜索解析等技術(shù)問題。haystack支持多種搜索引擎,不僅僅是whoosh,使用solr、elastic search等搜索,也可通過haystack,而且直接切換引擎即可,甚至無需修改搜索代碼。
GitHub 地址:Welcome to Haystack!
文檔地址:django-haystack/django-haystack
17.django-ckeditor - 富文本編輯器
django沒有提供官方的富文本編輯器,而ckeditor恰好是內(nèi)容型網(wǎng)站后臺(tái)管理中不可或缺的控件。ckeditor是一款基于javascript,使用非常廣泛的開源網(wǎng)頁編輯器。它允許用戶直接編寫圖文,插入列表和表格,并支持文本和HTML格式代碼輸入。
GitHub 地址:django-ckeditor/django-ckeditor
18.django-imagekit - 自動(dòng)化處理圖像
現(xiàn)代網(wǎng)站開發(fā)一般免不了處理一些圖片,例如頭像、用戶上傳的圖片等內(nèi)容。django-imagekit 幫你配合 django 的 model 模塊自動(dòng)完成圖片的裁剪、壓縮、生成縮略圖、加水印等一系列圖片相關(guān)的操作。
GitHub 地址:matthewwithanm/django-imagekit
文檔地址:Installation - ImageKit 3.2.6 documentation
19.django-xadmin - 更美觀更強(qiáng)大的后臺(tái)
如果你不喜歡django自帶后臺(tái)admin簡(jiǎn)陋的樣式,你可以使用xadmin。xadmin是基于bootstrap和admin的一個(gè)更強(qiáng)大的后臺(tái)管理系統(tǒng)。應(yīng)該會(huì)給有強(qiáng)迫癥的你帶來驚喜。
GitHub 地址:sshwsfc/xadmin
文檔地址:Welcome to Django Xadmin’s Documentation!
20.django-constance - 常量管理
有時(shí)我們會(huì)在 django 的 settings 中設(shè)置一些常量,但是有可能會(huì)進(jìn)行變更。利用這個(gè)包,只需簡(jiǎn)單的配置就可以自動(dòng)生成 admin 管理后臺(tái)可以修改管理常量。
Django 的好處就是大而全,不僅內(nèi)置了 ORM、表單、模板引擎、用戶系統(tǒng)等,而且第三方應(yīng)用的生態(tài)也是十分完善,開發(fā)中大部分常見的功能都能找到對(duì)應(yīng)的第三方實(shí)現(xiàn)。在這里給大家推薦 10 個(gè)十分優(yōu)秀的 Django 第三方庫(GitHub 星星數(shù)基本都在 1000 以上,而且都在持續(xù)維護(hù)與更新中)。雖然這些庫很適合用于社交網(wǎng)站的開發(fā),但也有很大一部分是通用的,可以用于任何用 Django 開發(fā)的項(xiàng)目。使用這些庫將大大提高開發(fā)效率和生產(chǎn)力。
21.django-model-utils
簡(jiǎn)介:增強(qiáng) Django 的 model 模塊。內(nèi)置了一些通用的 model Mixin,例如 TimeStampedModel 為模型提供一個(gè)創(chuàng)建時(shí)間和修改時(shí)間的字段,還有一些有用的 Field,幾乎每個(gè) Django 項(xiàng)目都能用得上。
GitHub 地址:jazzband/django-model-utils
文檔地址:django-model-utils - django-model-utils 3.2.0 documentation
22.django-crispy-forms
簡(jiǎn)介:大大增強(qiáng) Django 內(nèi)置的表單功能,Django 內(nèi)置的表單生成原生的 HTML 表單代碼還可以,但為其設(shè)置樣式是一個(gè)麻煩的事情。django-crispy-forms 幫助你使用一行代碼渲染一個(gè) Bootstrap 樣式的表單,當(dāng)然它還支持其它一些熱門的 CSS 框架樣式的渲染。
GitHub 地址:django-crispy-forms/django-crispy-forms
文檔地址:Forms have never been this crispy
23.django-mptt
簡(jiǎn)介:配合 Django 的 ORM 系統(tǒng),為數(shù)據(jù)庫的記錄生成樹形結(jié)構(gòu),并提供便捷的操作樹型記錄的 API。例如可以使用它實(shí)現(xiàn)一個(gè)多級(jí)的評(píng)論系統(tǒng)??傊?,只要你的數(shù)據(jù)結(jié)構(gòu)可能需要使用樹來表示,django-mptt 將大大提高你的開發(fā)效率。
GitHub 地址:django-mptt/django-mptt
文檔地址:Django MPTT documentation
24.django-contrib-comments
簡(jiǎn)介:用于提供評(píng)論功能,最先集成在 django 的 contrib 內(nèi)置庫里,后來被移出來單獨(dú)維護(hù)。這個(gè)評(píng)論庫提供了基本的評(píng)論功能,但是只支持單級(jí)評(píng)論。好在這個(gè)庫具有很好的拓展性,基于上邊提到的 django-mptt,就可以構(gòu)建一個(gè)支持層級(jí)評(píng)論的評(píng)論庫。
GitHub 地址:django/django-contrib-comments
文檔地址:Django “excontrib” Comments
25.django-brace
簡(jiǎn)介:django 內(nèi)置的 class based view 很 awesome,但還有一些通用的類視圖沒有包含在 django 源碼中,這個(gè)庫補(bǔ)充了更多常用的類視圖。類視圖是 django 的一個(gè)很重要也很優(yōu)雅的特性,使用類視圖可以減少視圖函數(shù)的代碼編寫量、提高視圖函數(shù)的代碼復(fù)用性等。
GitHub 地址:brack3t/django-braces
文檔地址:Welcome to django-braces’s documentation!
點(diǎn)評(píng):深入學(xué)習(xí)類視圖可以看Django類視圖源碼分析。
26.django-notifications-hq
簡(jiǎn)介:為你的網(wǎng)站提供類似于 GitHub 這樣的通知功能。未讀通知數(shù)、通知列表、標(biāo)為已讀等等。
GitHub 地址:django-notifications/django-notifications
文檔地址:django-notifications-hq
27.django-simple-captcha
簡(jiǎn)介:配合 django 的表單模塊,方便地為表單添加一個(gè)驗(yàn)證碼字段。對(duì)驗(yàn)證性要求不高的需求,例如注冊(cè)表單防止機(jī)器人自動(dòng)注冊(cè)等使用起來非常方便。
GitHub 地址:mbi/django-simple-captcha
文檔地址:Django Simple Captcha
28.django-anymail
簡(jiǎn)介:配合 django 的 email 模塊,只需簡(jiǎn)單配置,就可以使用 Mailgun、SendGrid 等發(fā)送郵件。
GitHub 地址:anymail/django-anymail
文檔地址:Anymail: Django email integration for transactional ESPs
29.django-activity-stream
簡(jiǎn)介:社交類網(wǎng)站免不了關(guān)注、收藏、點(diǎn)贊、用戶動(dòng)態(tài)等功能,這一個(gè) app 全搞定。甚至用它實(shí)現(xiàn)一個(gè)朋友圈也不是不可能。
GitHub 地址:justquick/django-activity-stream
文檔地址:Django Activity Stream Documentation
30.Datatables
是一款jquery表格插件。它是一個(gè)高度靈活的工具,可以將任何HTML表格添加高級(jí)的交互功能。
官網(wǎng):Table plug-in for jQuery 中文網(wǎng)站:Datatables 中文網(wǎng)
到此,關(guān)于“Django開發(fā)中常用的包有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。