8個能夠提高Django開發效率的Python包
【51CTO.com快譯】這裡介紹了一些有關Django的Python包,這些包將有益於您的工作、個人或業餘專案。
Django開發人員,我們將在這個月的Python專欄中專門討論一些對您有幫助的包。這些是我們最喜歡的 ofollow,noindex" target="_blank">Django 庫,能夠幫助我們節省時間,減少模板程式碼,簡化我們的工作流程。這裡介紹了六個Django應用程式包和兩個Django的REST框架包,當我們說這些包幾乎出現在我們工作的每個專案中時,一點也沒有誇張。
但是在此之前,你可以先看看我們之前寫的有關如何 讓Django 管理更加安全的技巧 ,以及一篇關於 5個最喜歡的開源Django包 的文章。
節省時間的利器:django-extensions
Django-extensions 是一個非常受歡迎的Django包,其中包含許多有用的工具,比如下面列出的這些管理命令:
- shell_plus將啟動Django shell,並保證所有資料庫模型都已被載入。不再需要從幾個不同的應用程式中匯入資料,來測試一個複雜的關係!
- clean_pyc命令會將專案目錄中所有位置的.pyc專案刪除。
- create_template_tags用於在您指定的應用程式中建立一個模板標籤目錄結構。
- describe_form將顯示模型的表單定義,然後您可以將其複製/貼上到forms.py中。(注意,這將生成一個普通的Django表單,而不是一個模型表單。)
- notes命令可以在整個專案中顯示所有帶有TODO、FIXME等內容的註釋。
Django-extensions中還包含一些有用的抽象基類,可用於您自己的模型中。在建立模型時你可以從這些基類繼承:
- TimeStampedModel:這個基類包括了建立和修改的欄位,以及一個可以自動更新這些欄位的save()方法。
- ActivatorModel:如果您的模型需要status、activate_date和deactivate_date等欄位,請使用這個基類。它附帶了一個啟用.active()和.inactive()查詢集的管理器。
- TitleDescriptionModel和TitleSlugDescriptionModel:這兩個模型包含了標題和描述欄位,而後者還包含一個slug欄位。slug欄位將根據標題欄位自動填充。
Django-extensions還有更多你可能會發現在專案中非常有用的功能,瀏覽一下它的文件吧!
12要素app設定:django-environ
Django-environ 允許您使用 12要素應用程式方法 來管理Django專案中的設定。它會收集其他的庫,包括 envparse 和 honcho 。安裝完django- environment之後,將在專案的根目錄中建立一個.env檔案。在該模組中定義任何可能在環境之間更改或應該保密的設定變數(如API金鑰、除錯狀態和資料庫url)。
然後,在專案的settings.py檔案中,匯入environ並根據示例為environ.PATH() 和 environ.Env()設定變數。使用env('VARIABLE_NAME')來訪問.env檔案中定義的設定變數。
創建出色的管理命令:django-click
Django-click ,基於 Click 模組(我們 之前 推薦過 兩次 ),可以用來幫助您編寫Django管理命令。這個庫沒有大量的文件,但是它的儲存庫中有一個 測試命令 的目錄,非常有用。一個基本的Hello World命令如下:
# app_name.management.commands.hello.py import djclick as click @click.command() @click.argument('name') def command(name): click.secho(f'Hello, {name}')
然後在命令列中執行:
>> ./manage.py hello Lacey Hello, Lacey
支援有限狀態機:django-fsm
Django-fsm 為Django模型添加了對有限狀態機的支援。如果你在運營一個新聞網站,需要撰寫、編輯和發表文章,django-fsm可以幫助你定義這些狀態,並管理從一個狀態轉移到另一個狀態的規則和限制。
Django-fsm提供了一個FSMField,用於定義模型例項狀態的model屬性。然後,您可以使用django-fsm的@transition裝飾器來定義將模型例項從一種狀態移動到另一種狀態的方法,並處理該轉換帶來的任何副作用。
雖然Django -fsm的文件也很少,但是瞭解Django中的 Workflows(States) 是一個基礎,它有助於理解有限狀態機和Django -fsm。
聯絡表格: #django-contact-form
在網站上,聯絡表格是一個經常會被需要的東西。但你不需要自己編寫所有的樣板程式碼——使用 django-contact-form 在幾分鐘內就可以設定好自己的程式碼。它附帶一個可選的垃圾郵件過濾聯絡人表單類(以及一個常規的非過濾類)和一個ContactFormView基類,其中包含可以覆蓋或自定義的方法,它會引導您瀏覽建立表單所需的工作模板。
註冊和使用者認證:django-allauth
Django-allauth 是一款應用程式,它提供了使用者註冊、登入、重置密碼以及通過GitHub或Twitter等外部網站驗證使用者身份的檢視、表單和url。它支援使用電子郵件來進行使用者名稱身份驗證,並且有大量的文件記錄。當你第一次使用它的時候,設定起來可能會有點混亂;請在自定義設定時仔細閱讀 安裝說明 ,以確保使用啟用特定功能所需的所有 設定 。
支援Django REST框架來處理使用者身份驗證:django-rest-auth
如果您的Django開發需要編寫API,那麼您可能正在使用 Django REST 框架 (DRF)。如果您正在使用DRF,您就應該瞭解下 django-rest-auth ,這是一個支援端點進行使用者註冊、登入/登出、密碼重置和社交媒體身份驗證的包(需要新增django-allauth,它可以很好地與django-rest-auth一起工作)。
視覺化的Django REST 框架API:django-rest-swagger
Django REST Swagger 提供了一個功能豐富的使用者介面,用於與Django REST 框架API進行互動。一旦你安裝了Django REST stawk並將其新增到已安裝的應用程式中之後,你就可以將stawk檢視和URL模式新增到你的urls.py檔案中去;其餘部分將在API的文件字串中被處理。
您的API的使用者介面將包含您應用的所有端點和可用方法。它還將列出這些端點的可用操作,並使您能夠與API進行互動(例如,新增/刪除/獲取記錄)。它使用API檢視中的docstring來為每個端點生成文件,為專案建立一組對您、前端開發人員和使用者有用的API文件。
原文標題:8 Python packages that will simplify your life with Django,作者:Jeff Triplett
【51CTO譯稿,合作站點轉載請註明原文譯者和出處為51CTO.com】
【責任編輯:龐桂玉 TEL:(010)68476606】