【Flask 框架学习】01:编写第一个 Flask 应用

1. 前言:为什么是 Flask?

在 Python 的 Web 开发世界里,有两个最著名的框架:DjangoFlask。如果说 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 参数会启动调试模式,这意味着应用会在代码改变时自动重新加载,并且在发生错误时提供一个调试器。

相关推荐
white-persist20 小时前
【CTF线下赛 AWD】AWD 比赛全维度实战解析:从加固防御到攻击拿旗
网络·数据结构·windows·python·算法·安全·web安全
硬件yun20 小时前
揭秘MOST:汽车影音的光纤高速公路
学习
AsDuang20 小时前
Python 3.12 MagicMethods - 45 - __rpow__
开发语言·python
程序员夏末20 小时前
【LeetCode | 第五篇】算法笔记
笔记·学习·算法·leetcode
无心水20 小时前
【文档解析】4、跨平台文档解析:JS/Go/C#全攻略
javascript·后端·golang·c#·架构师·大数据分析·分布式系统利器
所谓伊人,在水一方33320 小时前
【机器学习精通】第1章 | 机器学习数学基础:从线性代数到概率统计
人工智能·python·线性代数·机器学习·信息可视化
AsDuang20 小时前
Python 3.12 MagicMethods - 48 - __rmatmul__
开发语言·python
RDCJM20 小时前
Neo4j图数据库学习(二)——SpringBoot整合Neo4j
数据库·学习·neo4j
啊哈哈1213820 小时前
从零构建 Multi-Agent 系统:SQLAgent + RAGAgent + 智能路由实战
人工智能·python
清汤饺子20 小时前
用了大半年 Claude Code,我总结了 16 个实用技巧
前端·javascript·后端