Flask 是一个使用 Python 编写的轻量级 Web 框架。由于使用简单,通过扩展增加其他功能,因此被称为'微框架'(Microframework)。
2026 年的 Python 生态中,Flask 依然是构建中小型应用、微服务和 AI 模型接口的首选工具之一。
⭐️Flask 的设计基于两个核心库:
Werkzeug:一个强大的 WSGI(Web Server Gateway Interface)工具箱,负责处理 HTTP 请求和路由。
Jinja2:一个功能丰富的模板引擎,负责渲染 HTML。
😕Flask '微'在哪里?
Flask 不强制使用特定的数据库(如 Django 必须用其内置 ORM)或表单验证工具,它只提供核心功能,剩下的插件(Flask-SQLAlchemy,Flask-Login 等)由用户根据需求自行选择。
1.1 Flask 特点
**轻量级与简约:**核心代码库非常小,提供了最基本的功能,不强制要求特定的工具或库;
**灵活性:**Flask 提供了基本的框架结构,但没有强制性的项目布局或组件,开发者可以根据自己的需求自定义;
**可扩展性:**允许用户通过插件扩展来添加功能,eg. 表单处理、数据库交互或用户认证等,都可以通过社区提供的扩展来实现;
**易于调试:**内置非常优雅的交互式调试器,报错信息清晰直观。
**RESTful 支持:**Flask 支持 RESTful HTTP 请求处理,非常适合前后端分离架构。
**局限性:**大型项目需要手动搭建目录和配置,不像 Django 那样'开箱即用'。
1.2 Flask 核心组成
应用实例 (Flask App):每个 Flask 应用的核心,负责初始化、配置、路由映射、错误处理和请求处理上下文;
路由 (Routing):使用装饰器(@app.route())将 URL 映射到特定的视图函数;
视图函数 (View Functions):处理接收到的 HTTP 请求并返回相应 (HTML、JSON 等);
Jinja2(模板引擎):负责渲染 HTML 页面,支持将后端数据并动态嵌入到前端模板中;
请求和响应:Flask 处理 HTTP 请求,支持多种 HTTP 方法(如 GET、POST);
扩展模块 (Extensions):用于增强功能,如数据库操作(Flask-SQLAlchemy)、表单验证(Flask-WTF)等。
// 这里列举一些常见扩展:
| 扩展名 | 功能 |
|---|---|
| Flask-SQLAlchemy | 数据库 ORM |
| Flask-WTF | 表单处理 |
| Flask-Login | 用户认证 |
| Flask-RESTful | REST API 开发 |
| Flask-Migrate | 数据迁移 |
| Flask-CORS | 跨域支持 |
1.3 Flask 应用场景
以下是 Flask 典型的四大应用场景:
| 场景 |
|---|


