Flask 简介
Flask 是一个用 Python 编写的轻量级 Web 应用框架。它被称为"微框架",因为它保持核心简单但可扩展。
什么是 Flask
Flask 由 Armin Ronacher 开发,基于 Werkzeug WSGI 工具箱和 Jinja2 模板引擎。它的设计理念是:
- 简洁: 核心功能精简,易于理解和学习
- 灵活: 不强制项目结构,开发者可以自由组织代码
- 可扩展: 通过扩展包添加功能(数据库、认证、表单等)
Flask vs Django vs FastAPI
| 特性 | Flask | Django | FastAPI |
|---|---|---|---|
| 框架类型 | 微框架 | 全功能框架 | 现代异步框架 |
| 学习曲线 | 平缓 | 陡峭 | 中等 |
| 项目结构 | 自由 | 约定优于配置 | 自由 |
| 异步支持 | 有限 | 有限 | 原生支持 |
| 数据库 | 需扩展 | 内置 ORM | 需扩展 |
| 适用场景 | 小型/中型项目 | 大型项目 | API/高性能应用 |
核心组件
Werkzeug
WSGI 工具库,处理 HTTP 请求和响应。
Jinja2
现代模板引擎,支持模板继承和宏。
内置开发服务器
提供调试模式和自动重载功能。
最小 Flask 应用
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello, Flask!'
if __name__ == '__main__':
app.run(debug=True)
适用场景
- API 开发: 构建 RESTful API
- 微服务: 轻量级服务架构
- 原型开发: 快速验证想法
- 小型网站: 个人博客、展示站点
- 机器学习模型部署: 模型服务化
生态系统
Flask 拥有丰富的扩展生态:
- Flask-SQLAlchemy: 数据库 ORM
- Flask-WTF: 表单处理和验证
- Flask-Login: 用户认证
- Flask-Mail: 邮件发送
- Flask-Migrate: 数据库迁移
- Flask-Caching: 缓存支持
- Flask-RESTful: REST API 构建
下一步
接下来我们将学习如何安装 Flask 并创建你的第一个应用。