自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

8個能提高Django開發(fā)效率的Python包

譯文
開發(fā) 后端
這里介紹了一些有關(guān)Django的Python包,這些包將有益于您的工作、個人或業(yè)余項目。

【51CTO.com快譯】這里介紹了一些有關(guān)Django的Python包,這些包將有益于您的工作、個人或業(yè)余項目。

[[244602]]

Django開發(fā)人員,我們將在這個月的Python專欄中專門討論一些對您有幫助的包。這些是我們最喜歡的Django庫,能夠幫助我們節(jié)省時間,減少模板代碼,簡化我們的工作流程。這里介紹了六個Django應(yīng)用程序包和兩個Django的REST框架包,當(dāng)我們說這些包幾乎出現(xiàn)在我們工作的每個項目中時,一點也沒有夸張。

但是在此之前,你可以先看看我們之前寫的有關(guān)如何讓Django 管理更加安全的技巧,以及一篇關(guān)于5個最喜歡的開源Django包的文章。

節(jié)省時間的利器:django-extensions

Django-extensions是一個非常受歡迎的Django包,其中包含許多有用的工具,比如下面列出的這些管理命令:

  • shell_plus將啟動Django shell,并保證所有數(shù)據(jù)庫模型都已被加載。不再需要從幾個不同的應(yīng)用程序中導(dǎo)入數(shù)據(jù),來測試一個復(fù)雜的關(guān)系!
  • clean_pyc命令會將項目目錄中所有位置的.pyc項目刪除。
  • create_template_tags用于在您指定的應(yīng)用程序中創(chuàng)建一個模板標(biāo)簽?zāi)夸浗Y(jié)構(gòu)。
  • describe_form將顯示模型的表單定義,然后您可以將其復(fù)制/粘貼到forms.py中。(注意,這將生成一個普通的Django表單,而不是一個模型表單。)
  • notes命令可以在整個項目中顯示所有帶有TODO、FIXME等內(nèi)容的注釋。

Django-extensions中還包含一些有用的抽象基類,可用于您自己的模型中。在創(chuàng)建模型時你可以從這些基類繼承:

  • TimeStampedModel:這個基類包括了創(chuàng)建和修改的字段,以及一個可以自動更新這些字段的save()方法。
  • ActivatorModel:如果您的模型需要status、activate_date和deactivate_date等字段,請使用這個基類。它附帶了一個啟用.active()和.inactive()查詢集的管理器。
  • TitleDescriptionModel和TitleSlugDescriptionModel:這兩個模型包含了標(biāo)題和描述字段,而后者還包含一個slug字段。slug字段將根據(jù)標(biāo)題字段自動填充。

Django-extensions還有更多你可能會發(fā)現(xiàn)在項目中非常有用的功能,瀏覽一下它的文檔吧!

12要素app設(shè)置:django-environ

Django-environ允許您使用12要素應(yīng)用程序方法來管理Django項目中的設(shè)置。它會收集其他的庫,包括envparsehoncho。安裝完django- environment之后,將在項目的根目錄中創(chuàng)建一個.env文件。在該模塊中定義任何可能在環(huán)境之間更改或應(yīng)該保密的設(shè)置變量(如API密鑰、調(diào)試狀態(tài)和數(shù)據(jù)庫url)。

然后,在項目的settings.py文件中,導(dǎo)入environ并根據(jù)示例為environ.PATH() 和 environ.Env()設(shè)置變量。使用env('VARIABLE_NAME')來訪問.env文件中定義的設(shè)置變量。

創(chuàng)建出色的管理命令:django-click

Django-click,基于Click模塊(我們之前推薦過兩次),可以用來幫助您編寫Django管理命令。這個庫沒有大量的文檔,但是它的存儲庫中有一個測試命令的目錄,非常有用。一個基本的Hello World命令如下: 

  1. # app_name.management.commands.hello.py  
  2. import djclick as click  
  3. @click.command()  
  4. @click.argument('name' 
  5. def command(name):  
  6. click.secho(f'Hello, {name}'

然后在命令行中運行: 

  1. >> ./manage.py hello Lacey  
  2. Hello, Lacey 

支持有限狀態(tài)機:django-fsm

Django-fsm為Django模型添加了對有限狀態(tài)機的支持。如果你在運營一個新聞網(wǎng)站,需要撰寫、編輯和發(fā)表文章,django-fsm可以幫助你定義這些狀態(tài),并管理從一個狀態(tài)轉(zhuǎn)移到另一個狀態(tài)的規(guī)則和限制。

Django-fsm提供了一個FSMField,用于定義模型實例狀態(tài)的model屬性。然后,您可以使用django-fsm的@transition裝飾器來定義將模型實例從一種狀態(tài)移動到另一種狀態(tài)的方法,并處理該轉(zhuǎn)換帶來的任何副作用。

雖然Django -fsm的文檔也很少,但是了解Django中的Workflows(States)是一個基礎(chǔ),它有助于理解有限狀態(tài)機和Django -fsm。

聯(lián)系表格: #django-contact-form

在網(wǎng)站上,聯(lián)系表格是一個經(jīng)常會被需要的東西。但你不需要自己編寫所有的樣板代碼——使用django-contact-form在幾分鐘內(nèi)就可以設(shè)置好自己的代碼。它附帶一個可選的垃圾郵件過濾聯(lián)系人表單類(以及一個常規(guī)的非過濾類)和一個ContactFormView基類,其中包含可以覆蓋或自定義的方法,它會引導(dǎo)您瀏覽創(chuàng)建表單所需的工作模板。

注冊和用戶認(rèn)證:django-allauth

Django-allauth是一款應(yīng)用程序,它提供了用戶注冊、登錄、重置密碼以及通過GitHub或Twitter等外部網(wǎng)站驗證用戶身份的視圖、表單和url。它支持使用電子郵件來進行用戶名身份驗證,并且有大量的文檔記錄。當(dāng)你***次使用它的時候,設(shè)置起來可能會有點混亂;請在自定義設(shè)置時仔細(xì)閱讀安裝說明,以確保使用啟用特定功能所需的所有設(shè)置

支持Django REST框架來處理用戶身份驗證:django-rest-auth

如果您的Django開發(fā)需要編寫API,那么您可能正在使用Django REST 框架(DRF)。如果您正在使用DRF,您就應(yīng)該了解下django-rest-auth,這是一個支持端點進行用戶注冊、登錄/注銷、密碼重置和社交媒體身份驗證的包(需要添加django-allauth,它可以很好地與django-rest-auth一起工作)。

可視化的Django REST 框架API:django-rest-swagger

Django REST Swagger提供了一個功能豐富的用戶界面,用于與Django REST 框架API進行交互。一旦你安裝了Django REST stawk并將其添加到已安裝的應(yīng)用程序中之后,你就可以將stawk視圖和URL模式添加到你的urls.py文件中去;其余部分將在API的文檔字符串中被處理。

8個能夠提高Django開發(fā)效率的Python包

您的API的用戶界面將包含您應(yīng)用的所有端點和可用方法。它還將列出這些端點的可用操作,并使您能夠與API進行交互(例如,添加/刪除/獲取記錄)。它使用API視圖中的docstring來為每個端點生成文檔,為項目創(chuàng)建一組對您、前端開發(fā)人員和用戶有用的API文檔。

原文標(biāo)題:8 Python packages that will simplify your life with Django,作者:Jeff Triplett

【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】

責(zé)任編輯:龐桂玉 來源: 51CTO
相關(guān)推薦

2020-11-26 12:05:44

Python小工具代碼

2021-05-20 11:30:17

Python工具代碼

2021-05-10 11:06:31

Python工具代碼

2024-05-21 10:40:09

開發(fā)前端裝飾器

2018-10-08 08:42:06

編程語言DjangoPython

2015-12-15 09:50:12

Linux開發(fā)效率工具

2023-11-22 08:26:03

HutoolJava工具集

2022-09-05 14:17:48

Javascript技巧

2021-01-08 10:38:40

前端開發(fā)代碼

2015-07-22 09:44:07

Android開發(fā)Web工具

2012-03-14 09:35:56

JavaMaveneclipse

2021-05-18 15:41:15

開發(fā)工具編程

2021-01-12 15:17:40

命令Linux操作系統(tǒng)

2024-04-15 00:00:00

console語法樹AST

2022-03-24 09:34:06

Bootstrap

2012-03-07 09:41:01

Java

2019-05-13 14:00:13

CSS框架前端

2015-11-16 10:03:10

效率

2017-05-03 10:45:47

Python運行效率竅門

2021-04-29 07:40:21

VSCode快捷鍵
點贊
收藏

51CTO技術(shù)棧公眾號