Python web框架对比:Flask VS Django

flask今年发布了1.0版本,django却刚刚曝出面临发展困境。最近做了一些web开发,对二者有一点体会。

以前两个框架都用过,开发起来挺相似的,都是mvc框架。flask轻便灵活,django完善丰富但是重,大家都这么说。

flask适合小应用,很快就能跑起来。最近做了几个小应用,很顺手。刚刚开始做一个大一点的项目,需要一个用户管理功能,要保护url路由权限,当然是用框架里面开箱即用的功能。flask-login只负鉴权认证,没有路由保护功能,于是选择flask-security,后者是基于前者的。写着写着遇到了问题,flask-security的注册只能用email不能用用户名,登录过的用户就不能访问注册页面了,看了源码,都是写死了的,作者写了一个非匿名用户不能访问的装饰器,限制了注册和登录页面的已登录用户的访问,装饰器都写好了,不如开放给开发人员自己决定用不用。不过作者显然有合理的逻辑,这套机制是给开放注册的公共系统用的,只能由用户自己注册,不能由一个管理员统一注册。这不符合我的项目需求,我的项目是内部应用系统,一个管理员负责建立和管理账号。虽然flask-admin也有用户管理功能,但是它和管理其他数据模型是一样的,没有对于注册用户做特殊的功能比如密码加密。虽然自己改源码都能解决,但是整体感觉会乱,未来flask扩展如果升级了可能会有冲突,代码也不太优雅。这时我看了一下flask的几个扩展,最晚的在2014年 -_-|| 虽然flask本身今年升级到1.0了,但是扩展们都很久没人维护了。

于是考虑django,django的出身造就了它完善的用户管理系统,很好的满足了我的需求,然后去年底django升级到了2,并且一直有小版本的更新,再看一下django的扩展,真是比flask成熟多了。在找一个文件管理功能的扩展时我找到了这个网站,里面有多个扩展的多项指标对比,非常完善。

其实我想说没有最好,只有最合适的,当然这是废话。flask那些扩展的代码写得还是挺漂亮的,能学到不少。

猜你喜欢

转载自blog.csdn.net/qq_35753140/article/details/84877588