当前位置: 首页 > 科技观察

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

时间:2023-03-12 03:12:05 科技观察

【.com快译】这里有一些Django的Python包,对你的工作、个人或爱好项目都有好处。Django开发人员,我们将在本月的Python专栏中专门介绍一些对您有用的包。这些是我们最喜欢的Django库,它们可以帮助我们节省时间、减少样板代码并简化我们的工作流程。这里有六个Django应用程序包和两个DjangoREST框架包,我们毫不夸张地说这些包几乎存在于我们从事的每个项目中。但在此之前,您可以查看我们之前关于如何使Django管理更安全的技巧,以及一篇关于5个最喜欢的开源Django包的文章。节省时间:django-extensionsDjango-extensions是一个非常流行的Django包,其中包含许多有用的工具,例如下面列出的这些管理命令:shell_plus将启动Djangoshell并确保所有数据库模型都已加载。不再需要从多个不同的应用程序导入数据来测试复杂的关系!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-factorapp设置:django-environDjango-environ允许您使用12-factorapplication方式来管理Django项目。设置。它收集其他库,包括envparse和honcho。django-environment安装完成后,会在项目根目录下创建一个.env文件。定义可能在不同环境之间发生变化或应在此模块中保密的任何设置变量(例如API密钥、调试状态和数据库URL)。然后,在项目的settings.py文件中,导入environ并根据示例设置environ.PATH()和environ.Env()的变量。使用env('VARIABLE_NAME')访问.env文件中定义的设置变量。创建很棒的管理命令:django-clickDjango-click,基于Click模块(我们之前推荐过两次),可以用来帮助您编写Django管理命令。这个库没有大量的文档,但它的存储库中有一个非常有用的测试命令目录。一个基本的HelloWorld命令如下:')然后在命令行运行:>>./manage.pyhelloLaceyHello,Lacey支持有限状态机:django-fsmDjango-fsm为Django模型增加了对有限状态机的支持。如果您正在运营新闻网站并需要撰写、编辑和发布文章,django-fsm可以帮助您定义这些状态并管理从一种状态转移到另一种状态的规则和限制。Django-fsm提供了一个FSMField用于定义模型实例状态的模型属性。然后,您可以使用django-fsm的@transition装饰器来定义将模型实例从一种状态移动到另一种状态的方法,并处理该转换带来的任何副作用。虽然Django-fsm的文档很少,但是理解Django中的Workflows(States)是一个基础,有助于理解有限状态机和Django-fsm。联系表:#django-contact-form在网站上,联系表是一个非常常见的请求。但是您不需要自己编写所有样板代码-使用django-contact-form在几分钟内设置您自己的样板代码。它附带一个可选的垃圾邮件过滤联系表单类(以及一个常规的非过滤类)和一个ContactFormView基类,其中包含您可以覆盖或自定义的方法,它会引导您完成创建表单所需的工作模板。注册和用户身份验证:django-allauthDjango-allauth是一个应用程序,它通过GitHub或Twitter等外部站点为用户注册、登录、密码重置和身份验证提供视图、表单和url。它支持用于用户名身份验证的电子邮件,并且有据可查。第一次使用时,设置起来可能有点混乱;请在自定义设置时仔细阅读安装说明,以确保您使用启用特定功能所需的所有设置。支持DjangoRESTFramework来处理用户身份验证:django-rest-auth如果您的Django开发需要编写API,那么您可能正在使用DjangoRESTFramework(DRF)。如果你正在使用DRF,你应该知道django-rest-auth,这是一个支持用户注册、登录/注销、密码重置和社交媒体身份验证端点的包(需要添加django-allauth,可以很容易地很好地工作使用django-rest-auth)。VisualDjangoRESTFrameworkAPI:django-rest-swaggerDjangoRESTSwagger提供了一个功能丰富的用户界面,用于与DjangoRESTFrameworkAPI进行交互。安装DjangoRESTstawk并将其添加到已安装的应用程序后,您可以将stawk视图和URL模式添加到urls.py文件;其余的将在API的文档字符串中进行处理。API的用户界面将包含应用的所有端点和可用方法。它还将列出这些端点的可用操作,并使您能够与API交互(例如添加/删除/获取记录)。它使用API视图中的文档字符串为每个端点生成文档,为项目创建一组对您、前端开发人员和用户有用的API文档。原标题:8个Python包将简化你的Django生活,作者:JeffTriplett