热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

pythondjango_8个Python软件包将简化Django的生活

pythondjangoDjango开发人员,我们将在本月的Python专栏中专门介绍对您有帮助的软件包。这些是我们最喜欢的Django库,可节省时间&

python django

Django开发人员,我们将在本月的Python专栏中专门介绍对您有帮助的软件包。 这些是我们最喜欢的Django库,可节省时间,减少样板代码并总体上简化我们的生活。 我们有六个用于Django应用程序的软件包和两个用于Django REST框架的软件包,当我们说这些软件包几乎出现在我们从事的每个项目中时,我们都不在开玩笑。

但首先,请参阅有关使Django Admin更安全的提示,以及有关5个最喜欢的开源Django软件包的文章 。

有用的节省时间的厨房水槽:django-extensions

Django-extensions是最喜欢的Django软件包,里面塞满了许多有用的工具,例如以下管理命令:

  • shell_plus使用所有已加载的数据库模型启动Django Shell。 不再需要从几个不同的应用程序导入来测试一种复杂的关系!
  • clean_pyc从项目目录内的所有位置删除所有.pyc项目。
  • create_template_tags在您指定的应用内创建模板标签目录结构。
  • describe_form显示模型的表单定义,然后可以将其复制/粘贴到form.py中。 (请注意,这会生成常规的Django表单,而不是ModelForm。)
  • notes在整个项目中显示带有TODO,FIXME等内容的所有注释。
  • TimeStampedModel :此基类包括创建修改的字段,以及一个save()方法,该方法会适当地自动更新这些字段。
  • ActivatorModel :如果您的模型需要字段status , activate_datedeactivate_date ,请使用此基类。 它带有一个启用.active().inactive() 查询集的管理器。
  • TitleDescriptionModelTitleSlugDescriptionModel :它们包括标题描述字段,后者还包含一个字段。 子弹字段将根据标题字段自动填充。

Django-extensions具有更多在您的项目中可能有用的功能,因此请浏览其文档 !

12因子应用程序设置:django-environ

Django环境允许您使用12要素应用程序方法来管理Django项目中的设置。 它收集其他库,包括envparse和honcho 。 安装django-environ后,请在项目的根目录下创建一个.env文件。 在该模块中定义在环境之间可能更改或应保密的任何设置变量(例如API密钥,调试状态和数据库URL)。

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

创建出色的管理命令:django-click

基于Click的 Django-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用于模型属性,该属性定义模型实例的状态。 然后,您可以使用django-fsm的@transition装饰器来定义将模型实例从一种状态移动到另一种状态并处理该转变带来的任何副作用的方法。

尽管django-fsm的文档很浅,但是Django中的工作流(状态)的要旨是对有限状态机和django-fsm的出色介绍。

联系表格:#django-contact-form

联系表格是网站上的此类标准物品。 但是,请不要自己编写所有样板代码,而是使用django-contact-form在几分钟内完成设置。 它带有一个可选的垃圾邮件过滤联系人表单类(以及一个常规的非过滤类)和一个ContactFormView基类,其中包含您可以覆盖或自定义的方法,并且它引导您完成创建表单所需的模板工作。

注册和认证用户:django-allauth

Django-allauth是一款应用程序,它提供视图,表单和URL,用于注册用户,登录和注销用户,重置其密码以及通过GitHub或Twitter等外部站点对用户进行身份验证。 它支持电子邮件作为用户名身份验证,并且有大量文档记录。 第一次使用时可能会有些混乱。 仔细遵循安装说明 ,并在自定义设置时仔细阅读以确保您使用了启用特定功能所需的所有设置。

使用Django REST Framework处理用户身份验证:django-rest-auth

如果您的Django开发包括编写API,则您可能正在使用Django REST Framework (DRF)。 如果您使用的是DRF,则应签出django-rest-auth ,这是一个使端点能够进行用户注册,登录/注销,密码重置和社交媒体身份验证的软件包(通过添加django-allauth,它与django- rest-auth)。

可视化Django REST Framework API:django-rest-swagger

Django REST Swagger提供了功能丰富的用户界面,可用于与Django REST Framework API进行交互。 安装Django REST Swagger并将其添加到已安装的应用程序后,将Swagger视图和URL模式添加到urls.py文件中; 其余的将在您的API的文档字符串中处理。

Swagger screenshot

API的用户界面将包括您的所有端点以及应用细分的可用方法。 它还将列出这些端点的可用操作,并使您能够与API交互(例如,添加/删除/获取记录)。 它使用API​​视图中的文档字符串为每个端点生成文档,从而为您的项目创建一组API文档,这对您,前端开发人员和用户都是有用的。

翻译自: https://opensource.com/article/18/9/django-packages

python django



推荐阅读
  • 本文探讨了使用Python实现监控信息收集的方法,涵盖从基础的日志记录到复杂的系统运维解决方案,旨在帮助开发者和运维人员提升工作效率。 ... [详细]
  • 汇总了2023年7月7日最新的网络安全新闻和技术更新,包括最新的漏洞披露、工具发布及安全事件。 ... [详细]
  • 本文详细介绍了如何利用 Python 语言从文本文件中读取数据,并将其存储为字典格式,涵盖多种实用技巧和示例代码。 ... [详细]
  • 本文详细介绍了如何在本地环境中安装配置Frida及其服务器组件,以及如何通过Frida进行基本的应用程序动态分析,包括获取应用版本和加载的类信息。 ... [详细]
  • 本文分享了作者在使用LaTeX过程中的几点心得,涵盖了从文档编辑、代码高亮、图形绘制到3D模型展示等多个方面的内容。适合希望深入了解LaTeX高级功能的用户。 ... [详细]
  • 本文回顾了作者在求职阿里和腾讯实习生过程中,从最初的迷茫到最后成功获得Offer的心路历程。文中不仅分享了个人的面试经历,还提供了宝贵的面试准备建议和技巧。 ... [详细]
  • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • BeautifulSoup4 是一个功能强大的HTML和XML解析库,它能够帮助开发者轻松地从网页中提取信息。本文将介绍BeautifulSoup4的基本功能、安装方法、与其他解析工具的对比以及简单的使用示例。 ... [详细]
  • 构建Python自助式数据查询系统
    在现代数据密集型环境中,业务团队频繁需要从数据库中提取特定信息。为了提高效率并减少IT部门的工作负担,本文探讨了一种利用Python语言实现的自助数据查询工具的设计与实现。 ... [详细]
  • 使用IntelliJ IDEA高效开发与运行Shell脚本
    本文介绍了如何利用IntelliJ IDEA中的BashSupport插件来增强Shell脚本的开发体验,包括插件的安装、配置以及脚本的运行方法。 ... [详细]
  • 美团安全响应中心推出全新配送业务测试活动,带来双重福利,邀您共同参与! ... [详细]
  • 本文详细介绍了如何正确设置Shadowsocks公共代理,包括调整超时设置、检查系统限制、防止滥用及遵守DMCA法规等关键步骤。 ... [详细]
  • Python 中变量类型的确定与默认类型解析
    本文详细探讨了 Python 中变量类型的确定方式及其默认类型,帮助初学者更好地理解变量类型的概念。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
author-avatar
制霸
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有