核心功能
Flask 只提供路由、请求上下文、会话、模板渲染等基础 Web 机制,其余能力交给社区扩展,让你自己决定项目结构和技术栈。适合小型服务、原型验证,以及不希望被框架约定绑死的中大型应用。
功能亮点
几行代码起一个服务
导入 Flask、实例化 app、加一个 @app.route 装饰器,一个可访问的 Web 应用就成立了
核心只有三个依赖
Werkzeug 负责 WSGI、Jinja 负责模板、Click 负责命令行,其余能力自己按需装
蓝图拆分大型应用
Blueprint 把路由和视图按功能分组注册,避免单文件应用膨胀到难以维护
扩展生态有规范
官方给出扩展的命名约定、初始化类与配置写法,第三方扩展接入方式高度一致
调试模式带热重载
flask run --debug 开启后代码改动自动重载,并在浏览器里给出交互式报错页
适用场景
• 小型 Web 服务和内部工具,几十行代码即可上线一个接口
• 快速验证想法的原型项目,不需要预先搭建完整分层结构
• 对技术选型有主见的团队,自己组合 ORM、表单、认证等组件
安装配置
bash
官方推荐先建虚拟环境再安装。 macOS / Linux: mkdir myproject cd myproject python3 -m venv .venv . .venv/bin/activate pip install Flask Flask 支持 Python 3.9 及以上版本。 安装时会自动带上以下依赖:Werkzeug、Jinja、MarkupSafe、ItsDangerous、Click、Blinker。 可选依赖(需要时自行安装): pip install python-dotenv # 支持 .env 环境变量 pip install watchdog # 更快的开发服务器重载器
使用方法
python
写一个最小应用,保存为 hello.py(注意不要命名为 flask.py):
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello_world():
return "<p>Hello, World!</p>"
启动开发服务器:
flask --app hello run
开启调试模式(自动重载 + 交互式报错页):
flask --app hello run --debug
让局域网内其他设备可访问:
flask run --host=0.0.0.0
若文件名是 app.py 或 wsgi.py,可以省略 --app 直接 flask run。关键指标
尚未核验对标产品,此处只列本工具自身指标,不做对比结论。
指标Flask
价格免费
开源是
上手难度入门
相关工具
同类工具
优点
- 核心只依赖 Werkzeug、Jinja、Click 三个库,一个文件就能跑起完整应用
- 不预设项目结构和数据层,ORM、表单、认证都由你自己挑,改造和替换成本低
- Blueprint 提供官方的模块化拆分方式,应用变大时不必推翻重来
- 官方为扩展开发定义了命名与初始化规范,社区扩展的接入方式基本统一
缺点
- 数据库、表单校验、CSRF 防护、缓存、后台任务等都不在核心里,官方文档把它们放在 Patterns 与扩展章节,需要自己选型
- 没有统一的项目骨架和脚手架命令,团队协作时目录结构与规范要自己约定
- 自带的 flask run 面向开发场景,生产部署需要另配 WSGI 服务器