Flask

Flask

轻量级 Python WSGI Web 框架,核心精简、按需引入扩展

核心功能

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 服务器