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

栏目: Python · 发布时间: 6年前

内容简介:【51CTO.com快译】这里介绍了一些有关Django的Python包,这些包将有益于您的工作、个人或业余项目。Django开发人员,我们将在这个月的Python专栏中专门讨论一些对您有帮助的包。这些是我们最喜欢的

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

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

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命令如下:

# 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的文档字符串中被处理。

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

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

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

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

【责任编辑:庞桂玉 TEL:(010)68476606】


以上所述就是小编给大家介绍的《8个能够提高Django开发效率的Python包》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

A=B

A=B

Marko Petkovsek、Herbert S. Wilf、Doron Zeilberger / AK Peters, Ltd. / 1996-01 / USD 49.00

At some point, this book describes methods of solving the problem raised by Donald E. Knuth in the classical book "The Art of Computer Programming, Volume 1: Fundamental Algorithms". The main purpo......一起来看看 《A=B》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试