博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python django_8个Python软件包将简化Django的生活
阅读量:2554 次
发布时间:2019-05-11

本文共 2848 字,大约阅读时间需要 9 分钟。

python django

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

但首先,请参阅有关使提示,以及有关5个最喜欢的 。

有用的节省时间的厨房水槽: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 :如果您的模型需要字段statusactivate_datedeactivate_date ,请使用此基类。 它带有一个启用.active().inactive() 查询集的管理器。
  • TitleDescriptionModelTitleSlugDescriptionModel :它们包括标题描述字段,后者还包含一个字段。 子弹字段将根据标题字段自动填充。

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

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

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

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

创建出色的管理命令: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模型中增加了对有限状态机的支持。 如果您运行新闻网站并需要文章来处理诸如写作,编辑和发布等状态,则django-fsm可以帮助您定义这些状态并管理从一种状态转换到另一种状态的规则和限制。

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

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

联系表格:#django-contact-form

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

注册和认证用户:django-allauth

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

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

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

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

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

Swagger screenshot

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

翻译自:

python django

转载地址:http://zrczd.baihongyu.com/

你可能感兴趣的文章
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第4节 方法引用_3_方法引用_通过类名引用静态成员...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第1节 基础加强_3_Junit_使用步骤...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第4节 方法引用_6_方法引用_类的构造器(构造方法)引用...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第2节 反射_5_反射_概述
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第1节 基础加强_2_Junit_测试概述...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第2节 反射_7_反射_Class对象功能概述...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第1节 基础加强_4_Junit_@Before&@After...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第2节 反射_9_反射_Class对象功能_获取Constructor...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第2节 反射_6_反射_获取字节码Class对象的三种方式...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第2节 反射_11_反射_案例
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第2节 反射_8_反射_Class对象功能_获取Field...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第2节 反射_10_反射_Class对象功能_获取Method成员方法...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第3节 注解_13_注解_JDK内置注解...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第3节 注解_12_注解_概念
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第3节 注解_15_注解_自定义注解_属性定义...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第3节 注解_14_注解_自定义注解_格式&本质...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第3节 注解_17_注解_解析注解...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第3节 注解_16_注解_自定义注解_元注解...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第3节 注解_18_注解_案例_简单的测试框架...
查看>>
阶段3 1.Mybatis_01.Mybatis课程介绍及环境搭建_01.mybatis课程介绍
查看>>