Django的优缺点

注意事项 perev。:本文主要针对那些只选择Web开发框架的人。 经验丰富的Django开发人员不太可能学到任何新知识。



Django被描述为“基于Web的完美主义者的截止日期框架。” 它的创建是为了尽快从原型过渡到现成的服务。


该框架将有助于开发交钥匙的CRUD应用程序。 Django不必重新发明轮子。 它开箱即用,使您可以专注于普通人的业务逻辑和产品。


Django的优点


“全包”(“含电池”)的原则


短语“全包”意味着大多数用于创建应用程序的工具都是框架的一部分,并且不在单独的库中。


Django包含大量功能,可以解决大多数Web开发任务。 以下是Django的一些高级功能,如果您喜欢微型框架,则必须分别查找:


  • ORM
  • 数据库迁移
  • 用户认证
  • 管理面板
  • 表格

标准化结构


Django作为框架定义了项目结构。 它可以帮助开发人员了解在何处以及如何添加新功能。


由于所有项目的结构相同,因此,找到现成的解决方案或从社区中寻求帮助变得容易得多。 大量热心的开发人员将帮助您更快地完成任何任务。


Django应用程式


Django中的应用程序允许您将项目分成几个部分。 通过添加到settings.INSTALLED_APPS来安装应用程序。 这种方法使集成交钥匙解决方案变得容易。


数以百计的通用模块和应用程序将大大加快开发速度。 在djangopackages.org上查看他们的列表。


默认安全


Django是开箱即用的安全工具,并包含防止常见攻击的机制,例如SQL注入(XSS)和跨站点请求伪造(CSRF)。 您可以在官方安全手册中阅读有关此内容的更多信息。


用于创建API的REST框架


Django REST Framework(通常缩写为“ DRF”)是用于构建API的库。 它具有模块化和可定制的体系结构,非常适合创建简单和复杂的API。


在DRF中,开箱即用的是身份验证和权限策略。 它带有用于CRUD操作的基类以及用于测试开发的API的内置实用程序。


GraphQL API框架


大型REST API通常需要大量请求才能获取所有必要的数据。 GraphQL是一种查询语言,它使交换相关数据变得更加容易。 在官方文档中阅读有关GraphQL基本概念的更多信息。


Graphene-Django可以轻松为项目添加适当的功能。 Django的模型,表单,身份验证,权限策略和其他功能可用于创建GraphQL API。 该库还带有用于测试结果的实用程序。


Django的缺点


Django Orm


今天的Django ORM明显不如最新的SQLAlchemy。


Django ORM基于Active Record模板,它比SQLAlchemy中使用的工作单元模板差。 实际上,这体现在以下事实中:在Django模型中,可以随意“保存”自己,并且默认情况下禁用交易。 您可以在文章“ Django中我不喜欢的东西”中了解更多有关此内容的信息


Django发展缓慢


Django是一个大型的整体框架。 这使社区可以开发数百个通用模块和应用程序,但会减慢Django本身的开发速度。 另外,该框架必须支持向后兼容,因此它的开发速度相对较慢。


底线:我应该选择Django吗?


尽管Django ORM不如SQLAlchemy灵活,并且庞大的可重用模块和应用程序生态系统减慢了基础架构的开发速度,但显然Django应该是python框架角色的第一个候选人。


替代性的轻量级框架,例如Flask,尽管它们使您在生态系统和配置方面比Django更自由,但从长远来看,可能需要额外的时间来搜索/创建其他库和功能。


自从Django首次发布以来,其稳定性和不可思议的规模就变得不可思议。 有关该框架的官方文档和教程是同类中最好的。 随着Django的每个新版本的不断发展,机遇不断增加。

Source: https://habr.com/ru/post/zh-CN473042/


All Articles