您好,登錄后才能下訂單哦!
這篇文章主要介紹了Django開發(fā)常用5個(gè)軟件包是什么,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
Django是一款高級(jí)的Python Web框架,可以幫助開發(fā)者快速創(chuàng)建web應(yīng)用。
建立一個(gè)新項(xiàng)目或應(yīng)用總是有些痛苦。你可以用 Django 內(nèi)建的
startproject
不過,如果你像我們一樣,對(duì)如何做事比較挑剔。Cookiecutter 為你提供了一個(gè)快捷簡單的方式來構(gòu)建項(xiàng)目或易于重用的應(yīng)用模板,從而解決了這個(gè)問題。一個(gè)簡單的例子:鍵入
pip install cookiecutter
,然后在命令行中運(yùn)行以下命令:
$ cookiecutter https://github.com/marcofucci/cookiecutter-simple-django
接下來你需要回答幾個(gè)簡單的問題,比如你的項(xiàng)目名稱、目錄、作者名字、E-Mail 和其他幾個(gè)關(guān)于配置的小問題。這些能夠幫你補(bǔ)充項(xiàng)目相關(guān)的細(xì)節(jié)。我們使用最最原始的 “foo” 作為我們的目錄名稱。所以 cokkiecutter 在子目錄 “foo” 下建立了一個(gè)簡單的 Django 項(xiàng)目。
如果你在 “foo” 項(xiàng)目中閑逛,你會(huì)看見你剛剛選擇的其它設(shè)置已通過模板,連同所需的子目錄一同嵌入到文件當(dāng)中。這個(gè)“模板”在我們剛剛在執(zhí)行
cookiecutter
命令時(shí)輸入的唯一一個(gè)參數(shù) Github 倉庫 URL 中定義。這個(gè)樣例工程使用了一個(gè) Github 遠(yuǎn)程倉庫作為模板;不過你也可以使用本地的模板,這在建立非重用項(xiàng)目時(shí)非常有用。
我們認(rèn)為 cookiecutter 是一個(gè)極棒的 Django 包,但是,事實(shí)上其實(shí)它在面對(duì)純 Python 甚至非 Python 相關(guān)需求時(shí)也極為有用。你能夠?qū)⑺形募砸环N可重復(fù)的方式精確地?cái)[放在任何位置上,使得 cookiecutter 成為了一個(gè)簡化(DRY)工作流程的極佳工具。
多年來,托管網(wǎng)站的靜態(tài)資源——圖片、Javascript、CSS——都是一件很痛苦的事情。Django 內(nèi)建的 django.views.static.serve 視圖,就像 Django 文章所述的那樣,“在生產(chǎn)環(huán)境中不可靠,所以只應(yīng)為開發(fā)環(huán)境的提供輔助功能?!钡褂靡粋€(gè)“真正的” Web 服務(wù)器,如 NGINX 或者借助 CDN 來托管媒體資源,配置起來會(huì)比較困難。
Whitenoice 很簡潔地解決了這個(gè)問題。它可以像在開發(fā)環(huán)境那樣輕易地在生產(chǎn)環(huán)境中設(shè)置靜態(tài)服務(wù)器,并且針對(duì)生產(chǎn)環(huán)境進(jìn)行了加固和優(yōu)化。它的設(shè)置方法極為簡單:
確保你在使用 Django 的 contrib.staticfiles 應(yīng)用,并確認(rèn)你在配置文件中正確設(shè)置了STATIC_ROOT 變量。
在wsgi.py文件中啟用 Whitenoise:
from django.core.wsgi import get_wsgi_application from whitenoise.django import DjangoWhiteNoise application = get_wsgi_application() application = DjangoWhiteNoise(application) >
配置它真的就這么簡單!對(duì)于大型應(yīng)用,你可能想要使用一個(gè)專用的媒體服務(wù)器和/或一個(gè) CDN,但對(duì)于大多數(shù)小型或中型 Django 網(wǎng)站,Whitenoise 已經(jīng)足夠強(qiáng)大。
如需查看更多關(guān)于 Whitenoise 的信息,請(qǐng)查看文檔。
REST API 正在迅速成為現(xiàn)代 Web 應(yīng)用的標(biāo)準(zhǔn)功能。 API 就是簡單的使用 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 使用場景而設(shè)計(jì)。一般的 API 設(shè)置只需要一點(diǎn)代碼,所以我們沒有提供一份讓你興奮的示例代碼,而是強(qiáng)調(diào)了一些可以讓你生活的更舒適的 DRF 特性:
當(dāng)然,你可以不依賴 DRF 來構(gòu)建 API,但我們無法想象你不去使用 DRF 的原因。就算你不使用 DRF 的全部特性,使用一個(gè)成熟的視圖庫來構(gòu)建你自己的 API 也會(huì)使你的 API 更加一致、完全,更能提高你的開發(fā)速度。如果你還沒有開始使用 DRF, 你應(yīng)該找點(diǎn)時(shí)間去體驗(yàn)一下。
Wagtail 是當(dāng)下 Django CMS(內(nèi)容管理系統(tǒng))世界中最受人青睞的應(yīng)用,并且它的熱門有足夠的理由。就像大多數(shù)的 CMS 一樣,它具有極佳的靈活性,可以通過簡單的 Django 模型來定義不同類型的頁面及其內(nèi)容。使用它,你可以從零開始在幾個(gè)小時(shí)而不是幾天之內(nèi)來和建造一個(gè)基本可以運(yùn)行的內(nèi)容管理系統(tǒng)。舉一個(gè)小例子,為你公司的員工定義一個(gè)員工頁面類型可以像下面一樣簡單:
from wagtail.wagtailcore.models import Page from wagtail.wagtailcore.fields import RichTextField from wagtail.wagtailadmin.edit_handlers import FieldPanel, MultiFieldPanel from wagtail.wagtailimages.edit_handlers import ImageChooserPanel class StaffPage(Page): name = models.CharField(max_length=100) hire_date = models.DateField() bio = models.RichTextField() email = models.EmailField() headshot = models.ForeignKey('wagtailimages.Image', null=True, blank=True) content_panels = Page.content_panels + [ FieldPanel('name'), FieldPanel('hire_date'), FieldPanel('email'), FieldPanel('bio',classname="full"), ImageChoosePanel('headshot'), ]
然而,Wagtail 真正出彩的地方在于它的靈活性及其易于使用的現(xiàn)代化管理頁面。你可以控制不同類型的頁面在哪網(wǎng)站的哪些區(qū)域可以訪問,為頁面添加復(fù)雜的附加邏輯,還天生就支持標(biāo)準(zhǔn)的適應(yīng)/審批工作流。在大多數(shù) CMS 系統(tǒng)中,你會(huì)在開發(fā)時(shí)在某些點(diǎn)上遇到困難。而使用 Wagtail 時(shí),我們經(jīng)過不懈努力找到了一個(gè)突破口,使得讓我們輕易地開發(fā)出一套簡潔穩(wěn)定的系統(tǒng),使得程序完全依照我們的想法運(yùn)行。如果你對(duì)此感興趣,我們寫了一篇[深入理解 Wagtail][17。
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、Github、Google 和 Twitter。如果你發(fā)現(xiàn)了一個(gè)它不支持的社交網(wǎng)站,很有可能通過第三方插件提供該網(wǎng)站的接入支持。這個(gè)項(xiàng)目還支持自定義后端,可以支持自定義的認(rèn)證方式,對(duì)每個(gè)有定制認(rèn)證需求的人來說這都很棒。
django-allauth 易于配置,且有完善的文檔。該項(xiàng)目通過了很多測試,所以你可以相信它的所有部件都會(huì)正常運(yùn)作。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Django開發(fā)常用5個(gè)軟件包是什么”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。