Django:统治Python Web十年的“笨框架”,为什么还没死?

去年接了个落地项目,客户原来用某热门轻量Python框架搭的用户中心,扩到十万日活就卡得没法动,翻代码到处是野路子路由,逻辑绕得像走迷宫,最后核心团队拍板,切Django。消息刚出来,公司招来的几个00后后端小朋友炸开了:这都什么年代了还玩Django?太老古董了吧。

被骂“笨重”,恰恰是Django的核心竞争力

很多人对Django的第一印象,就是重、笨、不够灵活。从诞生第一天起,Django走的就是约定大于配置的路线,不像其他微框架把选择权完全交给开发者,Django从路由设计到数据建模,甚至项目目录结构,都给你规定得明明白白。

自带ORM、自带后台管理系统、自带用户认证、自带路由分发——全给你打包好了,开箱就能写业务。

Django MTV架构开发流程图
Django MTV架构开发流程图

很多新手上来就骂Django不自由,限制发挥。可你换个角度看企业开发,自由就是最大的坑。

十个开发用微框架搭同一个项目,能写出十种完全不同的目录结构,前任开发一拍屁股跑路,新来的接手看三天都摸不清逻辑在哪。用Django?就算是刚毕业半年的新手,写出来的项目结构都符合规范,换个人接手第二天就能改bug。

至于常被吐槽的ORM性能问题,说实话,百分之九十的业务场景,Django ORM生成的SQL足够用,真碰到极端复杂的查询,你直接写原生SQL不就行了?框架又没拦着你。我见过太多为了不存在的“性能优化”,拆掉ORM手写原生SQL,最后搞出SQL注入漏洞的蠢事,不值当。

Django生态现状:老而不僵,存量为王

这些年Python web圈的风头,几乎都被FastAPI抢光了,但凡聊到后端开发,开口就是异步、类型提示、高性能。可你去拉勾BOSS翻一遍后端招聘,Django的岗位需求占比,依然稳稳排在Python web框架第一。

核心原因就是存量市场太大了。从2005年诞生到现在,快二十年了,全球多少中大型项目跑在Django上。国内知乎早期核心架构就是Django搭的,现在依然有大量核心业务模块基于Django运行;国外Instagram支撑亿级图片流量,底层核心框架还是Django。国内几乎八成以上的Python开发的企业后台、SaaS产品、内容社区,都是用Django写的,稳定跑了五六年甚至十几年,没人闲得没事掏核心重构,成本太高,风险太大。

Python web框架市场占比统计图
Python web框架市场占比统计图

生态也没掉队,Django Rest Framework也就是圈内常说的DRF,至今还是Python做前后分离后端接口的第一选择,认证、分页、序列化、限流全套搞定,你要搭个给前端或者APP用的后端接口,半天就能出原型,速度快到吓人。最近几个大版本更新,Django也跟上了异步趋势,现在4.2LTS版本的异步能力,已经能覆盖绝大多数常规业务场景,不是那个抱残守缺的老古董了。

藏在稳定背后的隐忧

不过话说回来,Django确实面临很现实的问题。

第一个问题就是新人断层。现在新手学Python,上来要么做大模型接口,要么做微服务,上来就学FastAPI,嫌Django太重太麻烦,不愿意花时间学那一套规范。再过五到十年,现在这批熟练使用Django的老开发陆续转管理或者退居二线,市面上能接手维护老Django项目的人会越来越少,这才是最大的风险。

第二个问题就是新场景适配难。现在流行的Serverless、微服务拆分,一个服务就几百行代码解决一个小问题,你拉个Django项目,初始化的核心文件比业务代码都多,确实显得笨重。真要扛百万级以上的高并发场景,Django就算加了异步,性能上限也比Go系、Node系的主流框架差一截,这个得承认。

还有一点,Django的全栈一体的设计,在现在前后端完全分离的大趋势下,自带的模板系统确实用的越来越少了,很多人只用Django做接口服务,浪费了一半的功能,也显得冗余。

未来3-5年的Django:收缩阵地,稳定存活

未来3-5年的Django:收缩阵地,稳定存活
未来3-5年的Django:收缩阵地,稳定存活

很多人唱衰Django,说过两年就被FastAPI取代了。我看不见得。

未来三到五年,Django不会消失,只会收缩到自己擅长的领域,活得非常舒服。首先,存量项目的维护需求就足够养活整个生态,重写一个运行多年的稳定Django项目,成本动辄几十万上百万,出了问题没人敢担责任,绝大多数公司都会选择继续维护,不会随便替换。

其次,中大型SaaS、企业后台、内容平台这些场景,依然是Django的舒适区。这些场景不要求极致的单节点并发,要求的是开发快、结构稳、多人协作不出乱子,Django在这些场景的优势,没有任何一个Python框架能比。

对新人来说,学Django也完全不亏。你学会了Django这套规范的开发逻辑,再去学任何新框架都快得很,而且市面上大把的岗位需求,不愁找不到工作。

说实话,框架这东西,从来不是越新越好。那些天天吹新概念的新框架,可能过两三年就没人维护了。Django跑了快二十年,见过多少框架起高楼,见过多少框架楼塌了,它还在那安安稳稳帮你写业务,让你写完就能准点下班,不用陪那些花里胡哨的新概念熬夜。

这不就够了吗?

作者|大讲堂

排版|大讲堂

审核|柚子

免责声明:市场有风险,选择需谨慎!此文仅供参考,不作买卖依据。如有侵权请联系删除。
文章名称:Django:统治Python Web十年的“笨框架”,为什么还没死?
文章链接:https://www.lfdjt.com/info_23_23602.html