Flask 简介
1、简介
Flask诞生于2010年,是Armin ronacher用Python语言基于Werkzeug工具箱编写的轻量级Web开发框架,又称之为微框架。
-
"微"的含义:Flask旨在保持核心简洁,本身相当于内核,其他功能需通过扩展实现(如邮件扩展Flask-Mail,用户认证Flask-Login)
-
核心组件:
-
WSGI工具箱:Werkzeug(路由模块)
-
模板引擎:Jinja2
-
-
特性:
-
无默认数据库(可选择MySQL/NoSQL)
-
通过Flask-extension可集成ORM、窗体验证、文件上传、身份验证等功能
-
设计理念强调灵活性,不束缚开发者思想
-
flask官方中文文档:前言 — Flask 0.10.1 文档
Django vs Flask
框架 | 设计理念 | 功能特点 |
---|---|---|
Django | "精装修房子"<br>一站式解决方案 | 集成MVT模式、ORM、后台管理 |
Flask | "待装修房子"<br>微内核架构 | 仅提供核心路由分发<br>功能需通过扩展实现 |
常用扩展包
-
数据库:Flask-SQLalchemy(操作数据库)、Flask-migrate(数据库迁移)
-
功能扩展:
-
Flask-Mail(邮件)
-
Flask-WTF(表单)
-
Flask-script(脚本插入)
-
Flask-Login(用户认证)
-
-
API开发:Flask-RESTful(REST API工具)
-
前端集成:Flask-Bootstrap(Twitter Bootstrap框架)
-
工具类:Flask-Moment(日期本地化)、Flask-Uploads(文件上传)
2、Flask与Django的对比
Django 功能全景
django-admin # 快速创建项目工程目录 manage.py # 管理项目工程 ORM # 数据库抽象层 Admin后台 # 管理站点 缓存机制 # 内置缓存支持 文件存储系统 # 统一文件管理 用户认证系统 # 开箱即用
Flask 核心定位
-
轻量级架构:核心仅包含Werkzeug(路由)和Jinja2(模板引擎)
-
扩展驱动:无内置后台管理/表单/ORM,需通过第三方扩展实现
-
自由度高:开发者按需组合功能模块(如待装修房子自主设计)