【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 参数会启动调试模式,这意味着应用会在代码改变时自动重新加载,并且在发生错误时提供一个调试器。

相关推荐
JustHappy8 小时前
古法编程秘籍(六):程序到底是怎么跑起来的?从 IO 到中断,一次讲明白
前端·后端·全栈
cup118 小时前
[开源] Meta Assistant / 告别命令行,我为一堆 Python 脚本做了一个 Windows 任务栏的“家”
windows·python·工具·nuitka·脚本运行
晨曦中的暮雨8 小时前
Golang速通(Javaer版)
java·开发语言·后端·golang
小小编程路8 小时前
Python 还有容器类型互转、进制转换、字符编码转换
开发语言·windows·python
MartinYeung58 小时前
[论文学习]隐私保护联邦特徵选择与差分隐私的的工程实践框架
学习
qeen879 小时前
【C++】类与对象之类的默认成员函数(二)
android·c语言·开发语言·c++·笔记·学习
Samooyou9 小时前
RAG项目案例--02在线检索&过滤流水线
人工智能·python·ai·全文检索·检索
动能小子ohhh9 小时前
DocForge平台的设计与开发--文件上传接口的实现
开发语言·人工智能·python·langchain·ocr·fastapi
ab_dg_dp9 小时前
Android 17+ 提取 AIDL 生成 Java 文件的实用脚本
android·java·python
Flandern11119 小时前
Pull Requests(PR)
学习·github·pr