Link Search Menu Expand Document

为什么学Django及Django的未来在哪里?

目录

  1. Web应用开发技术的演变
  2. Django的优点?
  3. Django的缺点?
  4. Django适合哪些项目?
  5. Django未来会怎样?

没人愿意学一门过气的技术。是的,我们的时间是如此宝贵,不该浪费在一门没有未来的语言和技术上。

小编我最初是名PHP Web开发者,因“人生苦短,我学Python” 一句话转了Python Web开发(以Django为主), 并深深地为Python Web框架老大哥Django的开发效率所折服。当前Web应用开发技术界已经发生了翻天覆地的变化,Go语言不断挑战着Java和Python的地位,新的Python Web框架竞争者也层出不穷,比如最近流行Flask和FastAPI。Django自2005年7月首次发布至今已经快16年了, 那么现在学习Django开发是否仍然有意义,在未来Django能否还能成为你网站或app开发的首选技术吗?在此博客文章中,我们将深入研究Web开发技术的演变,并讨论Django框架的所有优点和缺点, 来帮你解答未来Django是否值得学习这个问题。

Web应用开发技术的演变

Django是主要为Web开发服务的,所以Django的未来与Web开发技术发展趋势紧密相关。Django这种基于MVC开发模式的传统框架,非常适合开发基于PC端的前后端不分离的传统网站,因为它同时包括了后端的开发(逻辑层、数据库层) 和前端的开发(如模板语言、样式、JS)。基于PC的网站和自适应(responsive)的手机网站不会消失,不过其重要性会随着手机APP和小程序等的普及而逐渐降低。即使对于开发传统网站,Django也只有在后台开发上有些优势,在前端仍需要借助流行的JS框架如Vue.js才能开发出互动性强且符合未来审美趋势的优秀网站来。

最近几年及未来几年更流行的开发模式肯定是前后端分离。现代网络应用Web APP或大型网站一般是一个后台,然后对应各种客户端(iOS, android, 浏览器)。由于客户端的开发语言与后台的开发语言经常不一样,这时需要后台能够提供可以跨平台跨语言的一种标准的资源或数据(如Json格式)供前后端沟通,这就是Web API(网络应用程序结口)的作用了。利用Django开发符合RESTful规范的Web API效率低下, 不过借助Django REST Framework(DRF)这个灵活易用、功能齐全的神器可以快速开发出高质量的Web API来。所以我们这里要感谢DRF,因为它,Django的应用前景更广了,减少了被淘汰的风险。

Django的优点?

Django最大的优势功能完善,可以稳定、快速地开发企业级应用。

  • 易于学习和理解:Django使用Python语言,这是初学者最简单的编程语言之一。因此,开发人员可以利用Python的语法规则,使用干净且可维护的代码在Django中创建应用程序。另外Django的项目文件夹布局(layout)是标准化的,项目中的每个应用App是可插拔的,项目代码容易维护。
  • 自带完善、功能强大的核心组件:Django自带大量常用工具和框架(比如分页、ORM系统、auth、权限管理、缓存、中间件), 不用重复造轮子,非常适合快速开发企业级网站。Django自带的ORM系统使开发人员可以更轻松地使用各种数据库并执行常见的数据库操作。
  • 一个庞大而活跃的社区以及广泛的库:经过十多年的发展和完善,Django有庞大而活跃的社区、完善的在线文档、广泛的实战案例和大量第三方的库(包括前面提到的Django REST框架)。开发者遇到问题时可以搜索在线文档或Stackoverflow寻求解决方案。
  • 开箱即用的管理后台:Django提供了一个开箱即用的专业、多功能的管理后台。它从您的模型中读取元数据,以提供一个快速的,以模型为中心的界面,受信任的用户可以在其中管理您网站上的数据和内容。
  • 可靠且功能安全的功能:Django的内置安全功能使开发人员能够保护其应用程序免受各种有针对性的安全攻击,包括跨站点脚本编写,SQL注入和跨站点伪造请求。同时,Web框架通过防止与Python编码相关的常见安全性错误来升级Web应用程序的安全性。

Django的缺点?

与任何技术一样,Django有很多优点,但也有一些缺点(通常取决于您的项目需求)。

  • 大包大揽:Django提供的强大功能使工程师更容易以有效的方式开发大型复杂的Web应用程序,但对轻量级的Web应用程序并不友好。这是因为Django提供的很多功能和模块可能用不上,相反会导致不必要的加载时间。
  • 过度封装: Django中很多类和方法都封装了,直接使用比较简单,但改动起来就比较困难。
  • 异步支持不足:异步编程允许一个工作单元与主应用程序线程分开运行。使用它可以大大提高应用程序性能和响应能力。Django最新版本3.2已经增加了对异步视图的支持,但很多异步任务或websocket通信还是需要借助celery和django-channels等第三方库实现。

Django适合哪些项目?

Django提供了许多现成的解决方案和工具,因此最大限度地减少了外部依赖关系并大大加快了开发过程。基于这些原因,它最适合以下开发工作:

  • Web网站及移动应用程序的API后端
  • 需要抵御网络攻击的高度安全性的应用程序
  • 需要高度自定义的应用-例如社交媒体

以Django为技术开发的热门网站包括:Pinterest,NASA,Washington Post, Spotify和The Guardian。

如果你只想开发一个小型Web应用,甚至数据库都用不到,Flask可能更适合。

Django未来会怎样?

Django的父母Python语言在过去几年中的确受到越来越多的欢迎,甚至中小学都开始教Python了。考虑到这一点,我们可以肯定地说Django将成为未来主流Web开发框架之一,工作机会也会越来越多。Django在美国和俄罗斯这两个超级大国非常流行,几乎是所有语言中首选Web开发框架。

在我国Web应用开发首选语言依然是Java及其框架,然而Python开发工程师或Python后端开发的工作机会也越来越多,工资也相当不错。如果你想作为一名Python开发工程师,从事运维系统开发,或web及网络应用后端开发工作,Django几乎是你必需要学习和掌握的知识。

原创不易,转载请注明来源。我是大江狗,一名Django技术开发爱好者。您可以通过搜索【CSDN大江狗】、【知乎大江狗】和搜索微信公众号【Python Web与Django开发】关注我!

Python Web与Django开发