打算基于Tornado
设计一个简单的Web框架扩展,改造一下url编写方式,我比较喜欢Flask
的url配置,通过一个装饰器来设置视图函数的url,但是这么配置有一个问题,
|- app
+- dir
| |- views
| |- hello_view.py
| |- world_view.py
| |- ...
像以上的模块结构,那么应用启动加载url前需要先加载各个视图模块。
大家觉得两种url配置方式各有什么优劣呢?装饰器注册url的方式需要先加载各种视图模块有没有什么好的解决方式?
首先, Flask这种风格是借鉴了如SpringMVC的这种框架,用装饰器来做路由,举个Java例子
SpringMVC已经有很多商业化的运用,所以这种松散的路由模式是有存在市场的。
而Django借鉴了如Rails的DRY原则(Don’t repeat yourself (DRY)),所以默认优于配置的比较多。
从路由角度来说,个人觉得Django更灵活,如果比较熟悉正则的话,改掉一个url的路由很轻松,但在flask里稍显麻烦。
从实战角度来说,Django重量些,Flask轻量些,Django性能差点,Flask好点,Django文档好些,Flask差点,Django ORM很多人吐槽很烂,Flask 默认用sqlalchemy基本上是python ORM的标准了。
反正各有千秋,很难说在Url路由方面哪种方式更好,看个人习惯。