
1.1 Flask框架介绍

Flask是一个面向中小型企业的Web开发框架,一般用于开发轻量级的Python Web应用程序。在市场占有率方面,Flask是在Python Web开发领域中位居前列的框架。在本节的内容中,将简要介绍Flask框架的知识,包括基本结构以及它与Django框架的对比。
1.1.1 Flask框架的基本结构
Flask框架的基本结构如图1-1所示。

图1-1 Flask框架的基本结构
根据图1-1所示的结构可知,Flask框架依赖两个外部库:Werkzeug和Jinja2,这两个外部库的具体说明如下所示。
• Werkzeug:是一个WSGI工具集,是Web应用程序和多种服务器之间的标准Python接口。
• Jinja2:负责渲染模板,将由HTML、CSS和JavaScript组成的模板文件显示出来。
为了提高开发效率,减少冗余代码,Flask框架会抽象出Web开发中的共同部分,以便在不同的页面中多次使用这个共同部分。作为一个基本的Flask Web应用程序,当客户端想从Web中获取某些信息时,便会发起一个HTTP访问请求(例如用浏览器访问一个URL),Web应用程序会在后台进行相应的业务处理(例如读取数据库或者进行一些计算操作等),然后取出用户需要的数据,生成相应的HTTP响应。如果访问静态资源,则直接返回资源即可,不需要进行业务处理。整个Web应用程序的处理过程如图1-2所示。

图1-2 整个Web应用程序的处理过程
a)客户端 b)服务器端
1.1.2 Flask和Django的对比
在当前技术环境下,使用Python开发Web程序的常用框架是Flask和Django,这两个框架涵盖了从小型项目到企业级项目的Web开发服务。Flask和Django的对比如下所示。
1)Flask框架比较年轻,诞生于2010年,其最大的优点是简单易学。而Django于2006年发布了第一个版本,是一个非常成熟的框架,比Flask框架要复杂难学一点。
2)Flask是面向中小型企业项目级的开发框架,而Django是面向大型企业级应用的开发框架。
3)Django使用开箱即用的ORM实现数据库处理,而Flask更加灵活,可以让开发者自己选择如何存储项目中的数据。
4)虽然Flask历史相对更短,但是支持者却不少。在GitHub托管网站上,它们获得的Star(好评数)近乎相当,这两个框架使用的都是BSD衍生协议BSD3条款。