内容简介:【51CTO.com快译】这里介绍了一些有关Django的Python包,这些包将有益于您的工作、个人或业余项目。Django开发人员,我们将在这个月的Python专栏中专门讨论一些对您有帮助的包。这些是我们最喜欢的
【51CTO.com快译】这里介绍了一些有关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项目中的设置。它会收集其他的库,包括 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】
以上所述就是小编给大家介绍的《8个能够提高Django开发效率的Python包》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 能够自动感知背景主色调的按钮
- 如何能够保证自己应用数据的安全?|四月汇报
- IT厂商为什么能够成为优秀的存储厂商
- 威胁情报的上下文、标示及能够执行的建议
- 商界领袖能够从贝索斯短信泄漏事件中学到什么?
- 跨年龄人脸识别技术,能够让拐卖儿童犯罪现象消失吗?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
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》 这本书的介绍吧!