1.Flask的两个主要依赖:
路由、调试和Web服务器网关接口(Web Server Gateway Interface,WSGI)子系统由Werkzeug提供。
模板系统由Jinja2提供。
Werkzeug功能:
HTTP头解析与封装
易于使用的request和response对象
基于浏览器的交互式JavaScript调试器
与 WSGI 1.0 规范100%兼容
支持Python 2.4-Python 2.7 (Python 3.0实验性支持)
支持Unicode
支持基本的会话管理及签名Cookie
支持URI和IRI的Unicode使用工具
内置支持兼容各种浏览器和WSGI服务器的实用工具
集成URL请求路由系统
2.视图函数处理请求并将返回值作为响应
请求钩子函数:before_first_request
before_request
after_request
teardown_request
视图函数和请求钩子函数可以使用的上下文:
程序上下文:current_app (程序实例)
g (临时存储对象)
请求上下文:request (请求对象)
session (用户会话)
3.将业务逻辑和表现逻辑分离,表现逻辑用模板来实现,由Jinja2模板引擎来渲染模板。
4.使用Flask-Bootstrap集成Bootstrap客户端框架。
5.使用Flask-Moment本地化日期和时间
6.使用Flask-WTF处理web表单
7.使用SQL或NoSQL
对中小程序来说,SQL和NoSQL性能相当。
关系型数据库优点:存储数据高效,避免了重复。缺点:数据存在多个表中,数据更改可能需要访问多个表,然后进行联结。
NoSQL:文档数据库,键值对数据库,用集合代替表,用文档代替记录。优点:将数据放置到一个集合中,提高了查找效率,操作简单(无需联结)。缺点:数据重复量大,查找相关数据时需要在程序中执行联结操作,数据更新时可能需要更新大量文档。
待续