tonghuashuai
2016-12-05 20:38:01 +08:00
我还是推荐 Tornado
Flask 一直说自己很优雅,但是我觉得很多地方用起来并不优雅,举几个例子:
主要觉得不好的地方在于 view 是使用函数实现而不是类
1. 在一个函数里面如果要同事处理 get 和 post 请求,就要使用 if 判断,
if request.method == 'POST':
pass
elif request.method == 'GET':
pass
这很明显不够优雅啊,应该分开处理啊, Tornado 用类来实现 view GET 和 POST 分别用不同的函数处理,多么好啊。
2. 就是 before_request 的方式
如果想实现访问鉴权的话,写到 app.before_request 装饰的函数里,但是他是全局的,如果一些 view 不需要鉴权,那又得 if 判断了, blueprint 也有 before_request ,但是写起来总是不够方便,而 Tornado 就可以用多重继承, Mixin 等方式,很方便啊
3. 就是在 view 嵌套函数
嵌套函数倒没什么问题,但是大量使用的话总觉得不够优雅吧,类方法才够优雅啊
当然,上面的疑问也可能是我对 flask 不够了解导致,如果又更好的实现,欢迎大家讨论。