1. 框架是什么概念?为什么要有框架?用框架和不用框架的区别?
Web应用框架(Web application framework)是一种开发框架,用来支持动态网站、网络应用程序及网络服务的开发。其类型有基于请求的和基于组件的两种框架。
web框架向程序员隐藏了处理 HTTP 请求和响应相关的基础代码,解决了将请求的 URL 映射到处理它的代码上的问题。这样我们在编写Web应用时,注意力就从WSGI处理函数转移到URL+对应的处理函数,编写Web App就更加简单了。
用框架就是可以避免直接处理处理 HTTP 请求和响应相关的事情,能节省开发时间,提高编程效率。
不用框架就可以不被框架束缚,对应产品真正的需求写出web网站。
2. flask和Django,Django和tornado的区别是什么?为什么有了Django又出了flask(flask相比于django有什么优势)?
flask和Django的区别:
Django提供一站式的解决方案,从模板、ORM、Session、Authentication等等都分配好了,连app划分都做好了。总之就是为你做尽量多的事,提供了一系列比较成熟的解决方案,但是不够灵活,有些自带的功能不好用不方便等。
Flask是一个微框架,只提供了一些核心功能,其提供了比较完善的 Web 服务器所需的基本功能,同时允许且建议用户自由选择扩展的技术。
tornado的优势是异步io,框架轻巧,灵活性强,但这也意味着只提供了核心的功能,功能/第三方库相对较少,很多功能要自己实现。
为什么有Django还要有Flask?
感觉两个框架的特点不一样,Django虽然全面,但不代表它就适合每一个项目。flask的灵活和很强的可扩展性,让它有着入门简单适用于小型网站开发之类的优点。各方面性能以及和数据库的配合,也要优于django。
我们可以根据自己开发的项目的特点、偏重点去选择合适的框架。