Django 和 Flask 你选哪个?

python基础

浏览数:82

2019-10-10

AD:资源代下载服务

Django框架简介

  • 用python开发的开源的web框架

  • 现在使用最多的python web框架

  • 功能完善、要素齐全,自带大量常用工具和框架

  • 有广泛的实践案例和完善的在线文档

  • 强大的数据库访问组件orm,无需学习数据库语言就可以操作数据库

  • 自带管理系统admin

  • 采用mtv模式,降低各功能模块之间的耦合性,更容易重构代码,最大程度上实现代码的重用

Flask框架简介

  • Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架。

  • Flask 本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login,数据库Flask-SQLAlchemy),都需要用第三方的扩展来实现。比如可以用 Flask 扩展加入ORM、窗体验证工具,文件上传、身份验证等。

  • Flask 没有默认使用的数据库,你可以选择 MySQL,也可以用 NoSQL。

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

  • 最新版本 1.0.2

架构对比:

  • 重量级的框架:为方便业务程序的开发,提供了丰富的工具、组件,如Django

  • 轻量级的框架:只提供Web框架的核心功能,自由、灵活、高度定制,如Flask、Tornado

Django提供了:

django-admin快速创建项目工程目录
manage.py 管理项目工程
orm模型(数据库抽象层)
admin后台管理站点
缓存机制
文件存储系统
用户认证系统
而这些,flask都没有,都需要扩展包来提供

4 Flask 常用扩展包

扩展列表: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:简单而可扩展的管理接口的框架

作者:CarryLili