Flask框架介绍

一、Flask框架介绍

Flask框架主要依赖Jinja模板引擎和Werkzeug WSGI套件。它们分别负责业务处理和安全方面的功能,为开发过程提供了丰富的基础组件。Werkzeug是一个综合性的WSGI Web应用程序库。它最初只是WSGI各种实用程序的简单集合,现在已经成为最先进的WSGI实用程序库之一。该程序库可以实现以下多种实用的功能。

(1)交互式调试器。允许在浏览器中用交互式解释器检查堆栈中任何帧的堆栈跟踪和源代码。

(2)功能齐全的请求对象。具有与头、查询参数、表单数据、文件和cookie交互的对象。

(3)响应对象。可以包装其他WSGI应用程序并处理流数据。

(4)路由系统。用于将URL与端点匹配并为端点生成URL,具有一个可扩展系统,用于从URL捕获变量。

(5)HTTP实用程序。用于处理实体标记、缓存控制、日期、用户代理、cookie、文件等。

(6)线程化的WSGI服务器。在本地开发应用程序时使用。

(7)测试客户机。用于在测试期间模拟HTTP请求,而不需要运行服务器。

Jinja2库是一个快速的、可扩展的模板引擎。模板中的特殊占位符允许编写类似于Python语法的代码以传递数据,并呈现最终文档。它还具有支持自动HTML转移功能、能够很好控制外部黑客的脚本攻击等优点。页面加载过程会将源码进行编译形成Python字节码,从而实现模板的高效运行。模板继承机制可以对模板内容进行修改和维护,为不同需求的用户提供相应的模板。整体的Flask框架工作流程,如图7-7所示。

图7-7 Flask框架工作过程图