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 分配好的视图函数,获取函数的返回值并将其显示到浏览器上,其工作过程见图:
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