Flask
主要概念
一切从客户端发起请求开始。
所有Flask程序都必须创建一个程序实例。
当客户端想要获取资源时,一般会通过浏览器发起HTTP请求。
此时, Web服务器使用-种名为WEB服务器网关接口的WSGI (Web Server Gateway Interface)协议,把来自客户端的请求都交给Flask程序实例。
Flask使用Werkzeug来做路由分发(URL请求和视图函数之间的对应关系)。根据每个URL请求,找到具体的视图函数。
在Flask程序中,路由-般是通过程序实例的装饰器实现。通过调用视图函数,获取到数据后,把数据传入HTML模板文件中,模板引擎负责渲染HTTP响应数据,然后由Flask返回响应数据给浏览器,最后浏览器显示返回的结果。
它是什么
Flask是一个使用Python编写的轻量级Web应用框架。基于Werkzeug WSGI工具箱和Jinja2模板引擎。Flask使用BSD授权。
Flask被称为“微框架”,因为它使用简单的核心,用扩展增加其他功能。Flask没有默认使用的数据库、窗体验证工具。然而,Flask保留了扩增的弹性,可以用Flask-extension[3]加入这些功能:ORM、窗体验证工具、文件上传、各种开放式身份验证技术。
主要的架构是什么
微框架Flask基于了Pocoo计划的Werkzeug和Jinja2。
Werkzeug
Werkzeug是给Python编程语言的实用工具库,是用于Web服务器网关接口(WSGI)应用的工具箱,并在BSD许可证下发行。Werkzeug可以为请求、响应和实用功能实现软件对象。它可被用于在其上建造定制的软件框架,并支持Python 2.7和3.5及以后版本[7][8]。
Jinja
Jinja也是Ronacher创作,是给Python编程语言的模板引擎,并在BSD许可证下发行。类似于Django web框架,它在沙盒中处理模板。
它有那些扩展工具包
Flask扩展包:
●Flask-SQLalchemy: 操作数据库;
●Flask-migrate: 管理迁移数据库;
●Flask-Mail:邮件;
●Flask-WTF: 表单;
●Flask-script: 插入脚本;
●Flask-Login: 认证用户状态;
●Flask-RESTful: 开发REST API的工具;
●Flask- Bootstrap:集成前端Twitter Bootstrap框架;
●Flask-Moment:本地化日期和时间;