1. Flask 简介
Flask 是一个 Python 实现的 Web 开发微框架。github地址:https://github.com/pallets/flask
“微”(micro) 并不表示你需要把整个 Web 应用塞进单个 Python 文件(虽然确实可以),也不意味着 Flask 在功能上有所欠缺。微框架中的“微”意味着 Flask 旨在保持核心简单而易于扩展。Flask 不会替你做出太多决策——比如使用何种数据库。而那些
Flask 所选择的——比如使用何种模板引擎——则很容易替换。除此之外的一切都由可由你掌握。如此,Flask 可以与您珠联璧合。默认情况下,Flask 不包含数据库抽象层、表单验证,或是其它任何已有多种库可以胜任的功能。然而,Flask支持用扩展来给应用添加这些功能,如同是 Flask本身实现的一样。众多的扩展提供了数据库集成、表单验证、上传处理、各种各样的开放认证技术等功能。Flask也许是“微小”的,但它已准备好在需求繁杂的生产环境中投入使用。
Flask有两个主要依赖:路由、调试和Web服务器网关接口(Web Server Gateway Interface,WSGI)子系统由Werkzeug(http://werkzeug.pocoo.org/)提供;模板系统由Jinja2(http://jinja.pocoo.org/)提供。Werkzeug和Jinjia2都是由Flask的核心开发者开发而成。
Flask并不原生支持数据库访问、Web表单验证和用户认证等高级功能。这些功能以及其他大多数Web程序中需要的核心服务都以扩展的形式实现, 然后再与核心包集成。开发者可以任意挑选符合项目需求的扩展, 甚至可以自行开发。
2. Web开发框架
(一) Django
Django是以快速开发和结构整洁著称的高层框架.这个开源免费的框架完全由Python编写并且遵循MVC的模型.它由经验丰富的大牛编写,帮你解决了Web开发中大多数的难点,让你能够专注于业务逻辑,而不用重复造轮子。
(二) Flask
Flask适合开发轻量级的Web应用,新手程序员会发现它缺乏一些必要的功能,如表单验证和数据库抽象层.它使用第三方库来完成这些工作.然而,它的结构适于扩展,所以你可以比较容易地为它添加必要的功能.它基于WerkzeugWSGI工具箱和jinja模板,它使用BSD许可证.
对于新手来说,推荐上手Flask。
(三) Pyramid
Pyramid以执行效率和快速开发的能力著称.这个框架最有优势的地方是,它包含了一些Python/Perl/Ruby独有的特性.这个开源框架拥有不依赖平台的MVC架构,和最快的启动开发的能力.
(四)CherryPy
使用CherryPy最好的理由就是它兼容Python,它的Python接口非常Pythonic,让Python开发者不会感到突兀.CherryPy是HTTP协议的一个封装,这样其他软件可以使用它来处理HTTP协议的细节.它是一个低层的框架,它只提供 RFC 2616 定义的功能.