用 Python 写 Web,Django 功能全但偏重、约定多;很多时候你只想要一个“最小可用、按需扩展”的核心,而不是全家桶。Flask 的出发点:给你一个极简核心(路由 + 请求/响应),其余用扩展补齐,让你完全掌控架构。

项目基本信息

信息项详情
项目名称flask
GitHub地址https://github.com/pallets/flask
项目描述轻量、灵活、可扩展的 Python Web 微框架
作者pallets
开源协议BSD 3-Clause License
开源状态公开
Languages—
支持平台Windows / macOS / Linux
最后更新2026-10-30

一、项目介绍

pallets/flask 是 Python 生态最经典的轻量级 Web 框架,BSD-3-Clause 协议。它只提供核心(路由、请求对象、Jinja2 模板),把数据库、表单、认证、API 等都留给扩展(Flask-SQLAlchemy、Flask-Login 等),因此既适合几十行的小服务,也能组建成大型应用。Flask 以“微框架”哲学著称:核心小、自由度高。

二、核心优势

  1. 极简核心:路由与请求/响应开箱即用,几行起服务。
  2. 高度灵活:架构由你定,不被 ORM/模板绑定。
  3. 扩展生态:SQLAlchemy、Login、WTForms、CORS 等成熟扩展。
  4. 易上手:概念少,Python 开发者几乎零门槛。
  5. 跨平台:纯 Python,Windows / macOS / Linux 均可运行。

三、适用场景

  • 小型 API、Webhook 接收端与微服务。
  • 原型验证与内部工具。
  • 作为大型系统的轻量接入层。
  • 教学演示 Web 原理。

四、安装教程

用 pip 安装:

pip install flask

常见报错:Windows 若报编译相关错误,多为缺少构建工具或升级 pip/setuptools;虚拟环境(venv)可避免依赖冲突。

五、使用示例

最简应用:

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello, Flask!"

运行:

flask --app app run --debug

真实效果:启动后访问 http://localhost:5000/ 返回 "Hello, Flask!"。需要数据库时再引入 Flask-SQLAlchemy 等扩展,按需组合——这正是“微框架”的精髓:核心小,能力靠扩展长出来。

六、常见问题

Q:Flask 和 Django 怎么选?
A:要全家桶与约定选 Django;要轻量可控选 Flask。
Q:做大项目会不会失控?
A:不会,靠清晰的蓝图(Blueprint)与扩展分层即可。
Q:支持异步吗?
A:新版本支持 async 视图,但生态仍以同步为主。

七、总结

Flask 用“微核心 + 扩展”的哲学,给 Python 开发者一个轻量又高度灵活的 Web 起点。对想要完全掌控架构、又不想被框架绑死的小服务与原型,它是经典之选;BSD-3-Clause 协议宽松,商用友好。