接触Python之后我第一次听说Flask,我就根据自己搜罗的知识尽可能简洁的说出来。如果不准确的地方还请指正,谢谢。
Flask是什么?
- Flask是基于Python编写的微型的轻量级web应用框架。微框架真正的含义是简单和短小。
Flask有哪些特点?
- 自带开发服务器和debugger
- 集成单元测试(unit testing)
- RESTful request dispatching
- 使用Jinja2模板引擎
- 支持secure cookies(client side sessions)
- 100% WSGI 1.0兼容
- Unicode based
- 详细的文件/教学
- Google App Engine兼容
- Flask没有默认使用的数据库、窗体验证工具。
- Flask保留了扩展的弹性,可以用Flask-extension加入一些功能:ORM、窗体验证工具、文件上传、各种开放式身份验证技术。
- 简单易学
Flask能做什么?
- Flask是一个微框架,提供了比较完善的Web服务器所需的基本功能,同时允许且建议用户自由选择扩展的技术。Flask适合开发API服务(独立的权限系统,依赖的第三方组件)。
- Flask适合做app后台或基于json通信的ajax应用,是轻量级框架,我用到的一个技术方案是pypy+ Flask +peewee + uWSGI + nginx + ubuntu server,速度快,开发效率高,主要是通过服务器返回json数据(json可以用压缩方式)走http和各个app交互,你也可以用Flask+WebSocket实现类似在线游戏的长连接,数据格式建议用json,如果有性能要求可以用Protocol Buffers协议。这样基于json api(RESTful太底层了,一般用json文本就可以了)的开发方式,一套后台程序,可以用于ajax网页,android,ios,pc,tv等多套app,最大程度满足了软件复用思想,否则一个app开发一个后台或变种后台,代价非常高,也不利于安全和性能。微服务就是这种思想扩展,但主要是针对企业应用,web2.0发展以来,一般应用用http api生成json数据交互就好,mvc模式不适合在http api上用,mvc模式是web1.0时代没有ajax,json无法分离html的妥协解决方案。http调用类似函数一样,有入口参数,返回json给调用者,当然可以在返回时加密、压缩,从而实现低耦合高内聚。另外对于http api需要防止注入攻击,加强权限控制,限制调用次数。