Django 和 egg.js 的简单比较

2020-05-19

去年我曾经回顾过这个博客的迁移记录,里面提到,本博客最早是我用 Django 写的,后来几经迁移,去年的时候,我用 egg.js 重写了它的后台。不过,今年五一小长假期间,我又折腾了一番,再次用 Django 重写了它,所以,现在这个博客又和 10 年前它刚上线时一样,是建立在 Django 技术上的了。

为什么要用 Django 重写呢?因为我曾经非常喜欢 Django,但突然发现自己已经有好几年没关注它了,而且它的版本号也从 1.x 升级到 3.0 了,我很好奇这几年里 Django 有了哪些变化,与 egg.js 等新生框架相比,它有哪些优势以及劣势。

Django 使用的语言是 Python,egg.js 使用的则是 JavaScript。10 年前的时候,Python 的语法比 JavaScript 简洁,但 10 年来 JavaScript 的语法有了大量的改进,个人觉得两者目前在语法简洁度方面并没有太大的差异了。

以我开发这个博客的体验来看,抛开语言方面的不同,Django 与 egg.js 都是非常优秀的框架,同时都有着海量的插件可用,基本上各种常见的需求两者都能快速实现。内置的功能方面 Django 更丰富一点,但针对 Web 开发的第三方插件似乎是 egg.js 更出色一些,毕竟后者背靠 Node.js 的庞大生态,比如 Markdown 转 HTML 的库,我觉得 Node.js 版的库无论数量还是质量上都比 Python 版的略胜一筹。

除此之外,不得不提的是 Django 的 ORM 仍然非常好用,尤其是自带数据库模型迁移功能,自带 admin 管理后台,如果你的应用中有较多的数据库常规操作,那么 Django 能让你的工作简单很多。而 egg.js 则仍然没有官方支持的 ORM,后台管理界面自然也需要自己实现或者使用第三方库。

在部署方面,egg.js 可以说非常简单,基本上只要有 Node.js 的环境,甚至可以不需要 Nginx 就能直接对外提供稳定的服务。而 Django 则有不少概念,比如 WSGI,同时 Nginx/Apache 等服务器也是必不可少的。

最后,一个简单的体验结论:目前来看 Django 和 egg.js 各有千秋,使用哪个主要看你的需求,以及更偏好 Python 还是 JavaScript,如果你的应用有较多操作数据库的需求,Django 可能更方便一点,否则 egg.js 或许是个不错的选择。

分类: 编程 标签: JavaScript Django
前一篇: 数列找规律的问题
后一篇: 开博 10 年纪念

相关文章:

评论:

暂无评论

发表评论:

电子邮件地址不会被公开。 必填项已用 * 标注。