[轉載]5 個最受人喜愛的開源 Django 包

      網友投稿 949 2025-04-01

      Django 圍繞“可重用應用”的思想建立:自包含的包提供了可重復使用的特性。你可以將這些可重用應用組裝起來,在加上適用于你的網站的特定代碼,來搭建你自己的網站。Django 具有一個豐富多樣的、由可供你使用的可重用應用組建起來的生態系統——PyPI 列出了超過 8000個 Django 應用——可你該如何知道哪些是最好的呢?


      為了節省你的時間,我們總結了五個最受喜愛的 Django 應用。它們是:

      Cookiecutter: 建立 Django 網站的最佳方式。

      Whitenoise: 最棒的靜態資源服務器。

      Django Rest Framework: 使用 Django 開發 REST API 的最佳方式。

      Wagtail: 基于 Django 的最佳內容管理系統(CMS)。

      django-allauth: 提供社交賬戶登錄的最佳應用(如 Twitter, Facebook, GitHub 等)。

      我們同樣推薦你看看 Django Packages,這是一個可重用 Django 應用的目錄。Django Packages 將 Django 應用組織成“表格”,你可以在功能相似的不同應用之間進行比較并做出選擇。你可以查看每個包中提供的特性和使用統計情況。(比如:這是 REST 工具的表格,也許可以幫助你理解我們為何推薦 Django REST Framework。

      為什么你應該相信我們?

      我們使用 Django 的時間幾乎比任何人都長。在 Django 發布之前,我們當中的兩個人(Frank 和 Jacob)就在 Lawrence Journal-World (Django 的發源地)工作(事實上,是他們兩人推動了 Django 開源發布的進程)。我們在過去的八年當中運行著一個咨詢公司,來建議公司怎樣最好地應用 Django。

      所以,我們見證了 Django 項目和社群的完整歷史,我們見證了那些流行的軟件包的興起和沒落。在我們三個之中,我們個人可能試用了 8000 個應用中至少一半以上,或者我們知道誰試用過這些。我們對如何使應用變得堅實可靠有著深刻的理解,并且我們對給予這些應用持久力量的來源也有著深入的了解。

      建立 Django 網站的最佳方式:Cookiecutter

      [轉載]5 個最受人喜愛的開源 Django 包

      建立一個新項目或應用總是有些痛苦。你可以用 Django 內建的 startproject。不過,如果你像我們一樣,對如何做事比較挑剔。Cookiecutter 為你提供了一個快捷簡單的方式來構建項目或易于重用的應用模板,從而解決了這個問題。一個簡單的例子:鍵入 pip install cookiecutter,然后在命令行中運行以下命令:

      $?cookiecutter?https://github.com/marcofucci/cookiecutter-simple-django

      如果你在 “foo” 項目中閑逛,你會看見你剛剛選擇的其它設置已通過模板,連同所需的子目錄一同嵌入到文件當中。這個“模板”在我們剛剛在執行 cookiecutter 命令時輸入的唯一一個參數 Github 倉庫 URL 中定義。這個樣例工程使用了一個 Github 遠程倉庫作為模板;不過你也可以使用本地的模板,這在建立非重用項目時非常有用。

      我們認為 cookiecutter 是一個極棒的 Django 包,但是,事實上其實它在面對純 Python 甚至非 Python 相關需求時也極為有用。你能夠將所有文件以一種可重復的方式精確地擺放在任何位置上,使得 cookiecutter 成為了一個簡化(DRY)工作流程的極佳工具。

      最棒的靜態資源服務器:Whitenoise

      多年來,托管網站的靜態資源——圖片、Javascript、CSS——都是一件很痛苦的事情。Django 內建的 django.views.static.serve 視圖,就像 Django 文章所述的那樣,“在生產環境中不可靠,所以只應為開發環境的提供輔助功能。”但使用一個“真正的” Web 服務器,如 NGINX 或者借助 CDN 來托管媒體資源,配置起來會比較困難。

      Whitenoice 很簡潔地解決了這個問題。它可以像在開發環境那樣輕易地在生產環境中設置靜態服務器,并且針對生產環境進行了加固和優化。它的設置方法極為簡單:

      確保你在使用 Django 的 contrib.staticfiles 應用,并確認你在配置文件中正確設置了 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)

      配置它真的就這么簡單!對于大型應用,你可能想要使用一個專用的媒體服務器和/或一個 CDN,但對于大多數小型或中型 Django 網站,Whitenoise 已經足夠強大。

      如需查看更多關于 Whitenoise 的信息,請查看文檔。

      開發 REST API 的最佳工具:Django REST Framework

      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 文檔幾乎可以自動生成。

      廣泛的第三方庫生態。

      當然,你可以不依賴 DRF 來構建 API,但我們無法想象你不去使用 DRF 的原因。就算你不使用 DRF 的全部特性,使用一個成熟的視圖庫來構建你自己的 API 也會使你的 API 更加一致、完全,更能提高你的開發速度。如果你還沒有開始使用 DRF, 你應該找點時間去體驗一下。

      基于 Django 的最佳 CMS:Wagtail

      Wagtail 是當下 Django CMS(內容管理系統)世界中最受人青睞的應用,并且它的熱門有足夠的理由。就像大多數的 CMS 一樣,它具有極佳的靈活性,可以通過簡單的 Django 模型來定義不同類型的頁面及其內容。使用它,你可以從零開始在幾個小時而不是幾天之內來和建造一個基本可以運行的內容管理系統。舉一個小例子,為你公司的員工定義一個員工頁面類型可以像下面一樣簡單:

      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 真正出彩的地方在于它的靈活性及其易于使用的現代化管理頁面。你可以控制不同類型的頁面在哪網站的哪些區域可以訪問,為頁面添加復雜的附加邏輯,還天生就支持標準的適應/審批工作流。在大多數 CMS 系統中,你會在開發時在某些點上遇到困難。而使用 Wagtail 時,我們經過不懈努力找到了一個突破口,使得讓我們輕易地開發出一套簡潔穩定的系統,使得程序完全依照我們的想法運行。

      提供社交賬戶登錄的最佳工具:django-allauth

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

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

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

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

      譯文出處:https://www.zcfy.cc/article/5-favorite-open-source-django-packages

      via: https://opensource.com/business/15/12/5-favorite-open-source-django-packages

      Django API

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:excel頁眉(excel頁眉怎么添加圖片)
      下一篇:數據協作軟件有哪些?數據協作怎么做?
      相關文章
      久久久久亚洲av无码专区喷水 | 456亚洲人成影院在线观| 亚洲精品老司机在线观看| 亚洲国产精品综合一区在线| 久久亚洲AV成人出白浆无码国产| 日韩亚洲欧洲在线com91tv| 亚洲中文久久精品无码ww16| 狠狠亚洲婷婷综合色香五月排名| 亚洲日韩在线观看| 久久久久亚洲AV成人网人人软件| 亚洲精品无码日韩国产不卡?V| 国产亚洲成在线播放va| 国产精品亚洲а∨天堂2021 | 亚洲精华国产精华精华液好用| 在线亚洲午夜片AV大片| 亚洲第一区二区快射影院| 国产亚洲精品bv在线观看| 国产精品久久亚洲不卡动漫| 亚洲专区一路线二| 99久久婷婷国产综合亚洲| 亚洲区日韩精品中文字幕| 亚洲国产精品成人AV在线| 风间由美在线亚洲一区| 夜色阁亚洲一区二区三区| 亚洲视频在线一区二区| 亚洲香蕉网久久综合影视| 亚洲AV无码第一区二区三区| 亚洲成人免费在线| 亚洲欧洲尹人香蕉综合| 91丁香亚洲综合社区| 亚洲爆乳AAA无码专区| 亚洲不卡AV影片在线播放| 亚洲色成人中文字幕网站| 亚洲av无码一区二区乱子伦as| 亚洲国产精品一区二区久久| 亚洲成人免费网站| 久久久久久亚洲精品影院| 老司机亚洲精品影院在线观看| 亚洲人成影院在线观看| 亚洲αv在线精品糸列| 亚洲精品国产手机|