Flask 编程技术、程序设计和范例源码

Flask

Flask 是一个使用 Python 编写的,用于开发 Web 应用的轻量级框架。Flask 的 WSGI 工具箱采用了 Werkzeug,模板引擎则使用了 Jinja2。Werkzeug 和 Jinja2 是 Flask 框架的核心。

Flask 又被称为 microframework(微框架),因为它使用了简单的核心,并用 extension 增加其它功能。

Flask 由 Armin Ronacher 开发,他领导了一个名为 Pocco 的国际 Python 爱好者团队。Werkzeug WSGI 工具包和 Jinja2 模板引擎都是 Pocco 项目。

Flask 免费开源,使用的是 BSD 授权。


 

1. Flask 工作流程

Flask 的基本模式为在程序里将一个视图函数分配给一个 URL,每当用户访问这个 URL 时,系统就会执行给该 URL 分配好的视图函数,获取函数的返回值并将其显示到浏览器上,其工作过程见图:

Flask工作流程

 

2. Flask 相关概念

1) 什么是 Web Framework

Web Application Framework(Web应用程序框架)表示一个库和模块的集合,使Web应用程序开发人员能够编写应用程序,而不必担心协议,线程管理等低级细节。Flask 是一个用 Python 编写的 Web 应用程序框架。

2) 什么是 WSGI

Web Server Gateway Interface(Web 服务器网关接口,WSGI)已被用作 Python Web 应用程序开发的标准。WSGI是 Web服务器 和 Web 应用程序之间通用接口的规范。Flask 作为 Web 应用程序框架,完全遵循 WSGI 规范。

3) 什么是 Werkzeug

Werkzeug 是一个 WSGI 工具包,它实现了请求,响应对象和实用函数。这使得能够在其上构建 Web 框架。Flask框架使用 Werkzeug 作为路由模块,是 Flask 的基础之一。

4) 什么是 jinja2

jinja2 是 Python 的一个流行的模板引擎。Web 模板系统将模板与特定数据源组合以呈现动态网页。

 

3. Flask 特点

Flask 开箱即用,它旨在保持应用程序的核心简单且可扩展。Flask 没有用于数据库处理的内置抽象层,也没有形成验证支持。相反,Flask 支持扩展以向应用程序添加此类功能。Flask有如下特点:

  • 内置开发服务器和快速调试器
  • 集成支持单元测试
  • RESTful 可请求调度
  • Jinja2 模板
  • 支持安全 cookie(客户端会话)
  • 符合 WSGI 1.0
  • 基于 Unicode

 

4. Flask 资源