Django 的 MVC(自称MTV) 拆分的很独立,例如模板没有太多的 Python 复杂的语法,可以方便前端人员,另外所谓的 Battery-Included ,里面很多实际项目中用到的功能,本身这些 battery 质量也比较高,大多数时候不需要再去寻找第三方库,很适合大项目,而且最近 1.7 已经自带 Migration 功能了,我觉得对于5人以上的团队用Django非常合适。但缺点也正是大而全,所以为了做到这些,做了不少让步,整体也比较臃肿,要完全熟悉需要花较多时间(文档1000多页)
Flask 虽然还没到1.0,但质量已经非常可靠了,看V站上招聘贴有不少创业公司在用,所以生产环境完全没问题。相对于 Django 而言,Flask 就显得非常灵活了,各部分的设计很干净简洁,很符合 Python 哲学。因为本身是微框架,所以上手很容易,文档也写得非常清晰(官网看起来相当清爽啊)。因为很灵活,不自带各种 battery,所以第三方的扩展非常丰富,但也造成了库的质量参差不齐,选择时需要花一定的时间评估,一旦入了某个扩展的坑,出问题了请随时做好撸起(袖)管子自己开干的觉悟。对于小团队来说,Flask 非常合适,招几个精通 Flask 的猿,比如我(开玩笑的,算不上精通),或者只是有一定的了解就可以,因为培养起来也很快,然后集体开撸(微框架很容易全方位的掌握),也不用把前端后端分得清清楚楚。一直听说 pocoo 小组写得代码非常棒,想认真地读读,可惜一直没有时间静下来好好研究 [Sigh]
Bottle 又是一个瓶子(Flask是烧瓶,话说以前一直以为是朝天椒的),单文件的微框架,比 Flask 更适合用来玩,但据我所知还没有生产项目是用 Bottle 做的,都是个人业余项目。因为单文件所以项目连同
bottle.py 一起随便往服务器上一扔,部署非常方便。作为框架最基本的东西也都有,有啥问题直接在
bottle.py 里翻源码就行,对于学习 Web 开发来说非常合适,可以从中了解那个经典的洋葱是怎么被一层层剥开的
至于其它框架,由于个人精力有限,没接触过