Flask

主要概念

  1. 一切从客户端发起请求开始。
  2. 所有Flask程序都必须创建一个程序实例。
  3. 当客户端想要获取资源时,一般会通过浏览器发起HTTP请求。
  4. 此时, Web服务器使用-种名为WEB服务器网关接口的WSGI (Web Server Gateway Interface)协议,把来自客户端的请求都交给Flask程序实例。
  5. Flask使用Werkzeug来做路由分发(URL请求和视图函数之间的对应关系)。根据每个URL请求,找到具体的视图函数。
  6. Flask程序中,路由-般是通过程序实例的装饰器实现。通过调用视图函数,获取到数据后,把数据传入HTML模板文件中,模板引擎负责渲染HTTP响应数据,然后由Flask返回响应数据给浏览器,最后浏览器显示返回的结果。

它是什么

  1. Flask是一个使用Python编写的轻量级Web应用框架。基于Werkzeug WSGI工具箱和Jinja2模板引擎。Flask使用BSD授权。
  2. Flask被称为“微框架”,因为它使用简单的核心,用扩展增加其他功能。Flask没有默认使用的数据库、窗体验证工具。然而,Flask保留了扩增的弹性,可以用Flask-extension[3]加入这些功能:ORM、窗体验证工具、文件上传、各种开放式身份验证技术。

主要的架构是什么

  1. 微框架Flask基于了Pocoo计划的WerkzeugJinja2
  2. Werkzeug
  3. Werkzeug是给Python编程语言的实用工具库,是用于Web服务器网关接口(WSGI)应用的工具箱,并在BSD许可证下发行。Werkzeug可以为请求、响应和实用功能实现软件对象。它可被用于在其上建造定制的软件框架,并支持Python 2.73.5及以后版本[7][8]。
  4. Jinja
  5. Jinja也是Ronacher创作,是给Python编程语言的模板引擎,并在BSD许可证下发行。类似于Django web框架,它在沙盒中处理模板。

它有那些扩展工具包

  1. Flask扩展包:
  2. Flask-SQLalchemy: 操作数据库;
  3. Flask-migrate: 管理迁移数据库;
  4. Flask-Mail:邮件;
  5. Flask-WTF: 表单;
  6. Flask-script: 插入脚本;
  7. Flask-Login: 认证用户状态;
  8. Flask-RESTful: 开发REST API的工具;
  9. Flask- Bootstrap:集成前端Twitter Bootstrap框架;
  10. Flask-Moment:本地化日期和时间;