Flask 与 Django 对比

Flask 的 WSGI 工具箱采用 Werkzeug(路由模块),模板引擎则使用 Jinja2。这两个也是 Flask 框架的核心。

 

1. 框架对比

1)框架轻重

  • 重量级的框架:为方便业务程序的开发,提供了丰富的工具、组件,如Django。
  • 轻量级的框架:只提供Web框架的核心功能,自由、灵活、高度定制,如Flask、Tornado。

2)与 Django 对比

django提供了:

  • django-admin快速创建项目工程目录
  • manage.py 管理项目工程
  • orm模型(数据库抽象层)
  • admin后台管理站点
  • 缓存机制
  • 文件存储系统
  • 用户认证系统

而这些,flask都没有,都需要扩展包来提供。

 

2. 常用扩展包

扩展列表:http://flask.pocoo.org/extensions/

  • Flask-SQLalchemy:操作数据库;
  • Flask-script:插入脚本;
  • Flask-migrate:管理迁移数据库;
  • Flask-Session:Session存储方式指定;
  • Flask-WTF:表单;
  • Flask-Mail:邮件;
  • Flask-Bable:提供国际化和本地化支持,翻译;
  • Flask-Login:认证用户状态;
  • Flask-OpenID:认证;
  • Flask-RESTful:开发REST API的工具;
  • Flask-Bootstrap:集成前端Twitter Bootstrap框架;
  • Flask-Moment:本地化日期和时间;
  • Flask-Admin:简单而可扩展的管理接口的框架

 

3. Flask文档

HTTP 协议是万维网中数据通信的基础,在该协议中定义了从指定 URL 检索数据的不同方法。Flask 支持 HTTP 协议中的 GET、POST、HEAD、PUT、DELETE等方法。下表总结了不同的 HTTP方法:GET 以未加密的形式将数据发送到服务器。HEAD 和GET方法相同,但没有响应体。 POST 用于将HTML表单数据发送到服务器。