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_date和deactivate_date ,请使用此基类。 它带有一个启用.active()和.inactive() 查询集的管理器。
- TitleDescriptionModel和TitleSlugDescriptionModel :它们包括标题和描述字段,后者还包含一个子字段。 子弹字段将根据标题字段自动填充。
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在几分钟内完成设置。 它带有一个可选的垃圾邮件过滤联系人表单类(以及一个常规的非过滤类)和一个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的文档字符串中处理。
API的用户界面将包括您的所有端点以及应用细分的可用方法。 它还将列出这些端点的可用操作,并使您能够与API交互(例如,添加/删除/获取记录)。 它使用API视图中的文档字符串为每个端点生成文档,从而为您的项目创建一组API文档,这对您,前端开发人员和用户都是有用的。
翻译自: https://opensource.com/article/18/9/django-packages
python django