Flask 是一款轻量级 Python Web 框架,以 “微框架” 为设计理念,核心仅保留路由、模板引擎等基础功能,其余功能通过扩展实现。其流程设计简洁高效,既适合快速开发小型应用,也能通过扩展支撑复杂系统,是 Python Web 开发的重要工具之一。
一、Flask 环境搭建与项目初始化
在了解流程前,需先完成环境准备与项目初始化,这是后续开发的基础,也是流程的起点。
1. 环境搭建(核心步骤)
Flask 依赖 Python 环境(推荐 3.7+),为避免依赖冲突,需先创建虚拟环境,再安装 Flask:
-
创建虚拟环境:通过 Python 内置的
venv模块创建隔离环境- Windows 命令:
python -m venv flask_env - macOS/Linux 命令:
python3 -m venv flask_env
- Windows 命令:
-
激活虚拟环境:
- Windows(cmd):
flask_env\Scripts\activate.bat - Windows(PowerShell):
.\flask_env\Scripts\Activate.ps1 - macOS/Linux:
source flask_env/bin/activate
- Windows(cmd):
-
安装 Flask:激活后执行
pip install flask,默认安装最新稳定版(截至 2024 年 5 月,最新版为 2.3.x)。
2. 最小项目初始化
Flask 对项目结构无强制要求,最小项目仅需 1 个 Python 文件(如 app.py),代码如下:
# 1. 导入 Flask 核心类
from flask import Flask
# 2. 初始化 Flask 应用实例
# __name__ 表示当前模块名,Flask 会据此查找模板、静态文件路径
app = Flask(__name__)
# 3. 定义路由与视图函数(核心关联)
@app.route('/') # 绑定 URL 路径“/”(首页)
def index(): # 视图函数:处理该路径的请求,返回响应
return "Hello, Flask!" # 返回字符串作为响应内容
# 4. 启动开发服务器
if __name__ == '__main__':
# debug=True:开启调试模式(代码修改后自动重启,显示错误详情)
app.run(debug=True)
运行 python app.py 后,访问 http://127.0.0.1:5000,即可看到 “Hello, Flask!”,标志项目初始化成功。
二、Flask 核心工作流程(请求 - 响应循环)
Flask 的核心流程是 “请求 - 响应循环”:用户发送 HTTP 请求 → Flask 处理请求 → 返回 HTTP 响应。整个过程可拆解为 7 个关键步骤,涉及应用实例、路由、视图函数、请求上下文等核心组件。
步骤 1:启动开发服务器,监听请求
执行 app.run() 后,Flask 会启动内置开发服务器(基于 Werkzeug 库),默认监听 127.0.0.1:5000(localhost 的 5000 端口)。此时服务器处于 “等待状态”,随时接收客户端(如浏览器)发送的 HTTP 请求(如 GET、POST 请求)。
注意:内置服务器仅用于开发环境,生产环境需使用 Gunicorn、uWSGI 等专业服务器。
步骤 2:接收请求,解析 HTTP 信息
当用户在浏览器输入 http://127.0.0.1:5000/user 并回车时,浏览器会发送 HTTP GET 请求,Flask 服务器接收后,首先解析请求中的核心信息:
- 请求方法:GET(或 POST、PUT、DELETE 等)
- 请求路径:
/user(用于匹配路由) - 请求参数:如
?id=123(URL 中的查询参数) - 请求头:如 User-Agent(浏览器标识)、Cookie 等
- 请求体:如 POST 请求中提交的表单数据、JSON 数据
步骤 3:匹配路由,找到对应的视图函数
Flask 内部维护一个 “路由表”,存储 URL 路径与视图函数的映射关系(通过 @app.rou