8个能提高Django开发效率的Python包

译文
开发 后端
这里介绍了一些有关Django的Python包,这些包将有益于您的工作、个人或业余项目。

【51CTO.com快译】这里介绍了一些有关Django的Python包,这些包将有益于您的工作、个人或业余项目。

[[244602]]

Django开发人员,我们将在这个月的Python专栏中专门讨论一些对您有帮助的包。这些是我们最喜欢的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项目中的设置。它会收集其他的库,包括envparsehoncho。安装完django- environment之后,将在项目的根目录中创建一个.env文件。在该模块中定义任何可能在环境之间更改或应该保密的设置变量(如API密钥、调试状态和数据库url)。

然后,在项目的settings.py文件中,导入environ并根据示例为environ.PATH() 和 environ.Env()设置变量。使用env('VARIABLE_NAME')来访问.env文件中定义的设置变量。

创建出色的管理命令: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 

支持有限状态机: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的文档字符串中被处理。

8个能够提高Django开发效率的Python包

您的API的用户界面将包含您应用的所有端点和可用方法。它还将列出这些端点的可用操作,并使您能够与API进行交互(例如,添加/删除/获取记录)。它使用API视图中的docstring来为每个端点生成文档,为项目创建一组对您、前端开发人员和用户有用的API文档。

原文标题:8 Python packages that will simplify your life with Django,作者:Jeff Triplett

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

责任编辑:庞桂玉 来源: 51CTO
相关推荐

2021-05-10 11:06:31

Python工具代码

2020-11-26 12:05:44

Python小工具代码

2021-05-20 11:30:17

Python工具代码

2024-05-21 10:40:09

开发前端装饰器

2018-10-08 08:42:06

编程语言DjangoPython

2022-09-05 14:17:48

Javascript技巧

2015-12-15 09:50:12

Linux开发效率工具

2023-11-22 08:26:03

HutoolJava工具集

2021-01-08 10:38:40

前端开发代码

2021-05-18 15:41:15

开发工具编程

2012-03-14 09:35:56

JavaMaveneclipse

2015-07-22 09:44:07

Android开发Web工具

2021-01-12 15:17:40

命令Linux操作系统

2024-04-15 00:00:00

console语法树AST

2019-05-13 14:00:13

CSS框架前端

2012-03-07 09:41:01

Java

2022-03-24 09:34:06

Bootstrap

2017-05-03 10:45:47

Python运行效率窍门

2015-11-16 10:03:10

效率

2013-07-05 16:08:40

开发效率
点赞
收藏

51CTO技术栈公众号