1. 前言:为什么是 Flask?
在 Python 的 Web 开发世界里,有两个最著名的框架:Django 和 Flask。如果说 Django 是一个"全能型工具箱",那么 Flask 就是一把"精巧的瑞士军刀"。
Flask 的特点:
-
轻量级:核心简单,只保留 Web 开发的核心功能。
-
高度定制:它不限制你使用什么数据库或模板引擎,一切由你决定。
-
上手极快:几行代码就能跑起一个服务器。
我们就从零开始,搭建第一个 Flask 应用。
2. 环境搭建
在开始写代码之前,我们需要准备好开发环境。建议大家养成使用 虚拟环境 的好习惯,这样可以避免不同项目之间的软件包版本冲突。
使用 pip 安装 Flask
我们可以使用 Python 的包管理器 pip 可以用来安装Flask。
打开你的命令行工具(在 Windows 上是命令提示符或 PowerShell,在 macOS 或 Linux 上是终端),然后运行以下命令:
bash
pip install flask -i https://pypi.tuna.tsinghua.edu.cn/simple
安装完成后,可以通过以下命令验证 Flask 是否安装成功:
bash
pip show flask
执行以上命令,显示结果类似如下:
bash
Name: Flask
Version: 2.3.2
Summary: A simple framework for building complex web applications.
Home-page:
Author:
Author-email: Armin Ronacher <armin.ronacher@active-4.com>
License: BSD-3-Clause
Location: d:\an\envs\flask\lib\site-packages
Requires: blinker, click, itsdangerous, Jinja2, Werkzeug
Required-by: Flask-MySQLdb, Flask-SQLAlchemy
这样我们就成功安装了 Flask 包。
3. 第一个 Flask 应用:Hello Falsk
创建一个名为 app.py 的文件,填入以下代码。虽然代码很少,但每一行都至关重要:
python
from flask import Flask
# 1. 创建 Flask 应用实例
# __name__ 参数帮助 Flask 确定资源文件的位置(如模板和静态文件)
app = Flask(__name__)
# 2. 定义路由(Route)
# @app.route 是一个装饰器,它告诉 Flask 哪个 URL 应该触发下面的函数
@app.route('/')
def hello_Flask():
# 函数的返回值就是显示在浏览器上的内容
return 'Hello, Flask!'
# 3. 启动本地开发服务器
if __name__ == '__main__':
# debug=True 开启调试模式:代码修改后服务器会自动重启,且出错时会显示详细信息
app.run(debug=True)
4. 运行你的应用
回到终端,运行这个 Python 文件:
bash
python app.py
当你看到如下输出时,说明服务器已经成功启动了:
bash
* Running on http://127.0.0.1:5000
Press CTRL+C to quit
* Restarting with stat
* Debugger is active!
* Debugger PIN: 126-906-996
现在,打开浏览器,访问 http://127.0.0.1:5000,你就能看到那句亲切的 "Hello, Flask!" 了!

5. 核心代码深度解析
-
from flask import Flask: 这行代码从
flask模块中导入了Flask类。Flask类是 Flask 框架的核心,用于创建 Flask 应用程序实例。 -
app = Flask(name): 这行代码创建了一个 Flask 应用实例。
__name__是一个特殊的 Python 变量,它在模块被直接运行时是'__main__',在被其他模块导入时是模块的名字。传递__name__给Flask构造函数允许 Flask 应用找到和加载配置文件。 -
@app.route('/'): 这是一个装饰器,用于告诉 Flask 哪个 URL 应该触发下面的函数。在这个例子中,它指定了根 URL(即网站的主页)。
-
def hello_Flask():: 这是定义了一个名为
hello_Flask的函数,它将被调用当用户访问根URL时。 -
return 'Hello, Flask!': 这行代码是
hello_Flask函数的返回值。当用户访问根 URL 时,这个字符串将被发送回用户的浏览器。 -
if name == 'main'::这行代码是一个条件判断,用于检查这个模块是否被直接运行,而不是被其他模块导入。如果是直接运行,下面的代码块将被执行。
-
app.run(debug=True):这行代码调用 Flask 应用实例的
run方法,启动 Flask 内置的开发服务器。debug=True参数会启动调试模式,这意味着应用会在代码改变时自动重新加载,并且在发生错误时提供一个调试器。