Module 02 · Web App Deployment using Flask
Deploying Web Apps using Flask使用 Flask 部署 Web 应用程序
欢迎来到 使用 Flask 部署 Web 应用程序 课程。
观看本视频后,您将能够:
- ✅ 描述 Flask 的特性
- ✅ 安装 Flask
- ✅ 使用 Flask 创建并部署 Python Web 应用程序
什么是 Flask?
Flask 是一个微框架(Micro-framework),用于使用 Python 快速轻松地创建 Web 应用程序。
Flask 与 CRUD 操作

Flask 支持 CRUD(即创建 Create、读取 Read、更新 Update 和删除 Delete)请求。它是通过处理 POST、PUT、GET、PATCH 和 DELETE 请求来实现的。
以下是 HTTP 请求与 CRUD 操作的对应关系:
| HTTP 请求方法 | 用途描述 | 常见应用场景 |
|---|---|---|
| POST | 创建对象或数据 | 创建用户 |
| GET | 从服务器读取数据 | 读取页面或信息 |
| PUT / PATCH | 更新现有数据或对象 | 修改用户信息 |
| DELETE | 删除现有数据或对象 | 删除记录 |
📝 注意: 在大多数 Web 应用程序中,通常倾向于使用 POST 来进行对象的创建、更新和删除,而使用 GET 进行读取。
创建 Flask Web 应用程序步骤
接下来,我们将逐步演示如何构建一个返回 "Hello World" 的 Web 应用程序。

第一步:安装 Flask
首先,使用 Python 的标准包管理器 pip 安装 Flask 包。这将获取 Flask 的最新版本。
- 命令:
pip install flask
第二步:导入 Flask 模块
安装完成后,需要从 flask 包中导入 Flask 类。
第三步:实例化 Flask 类
创建一个 Flask 类的对象作为 Web 应用程序,并将其命名(例如 app)。
- 代码示例:
app = Flask("MyFirstWebApplication")- 注:大多数应用程序为了清晰起见使用引用名称
app,但这只是一个引用名,您可以使用任何其他名称。
- 注:大多数应用程序为了清晰起见使用引用名称
第四步:定义路由(Route)
定义根目录以及访问该根目录时将调用的方法。
- 代码示例:
@myapp.route('/')- 注:在此示例中未指定 GET 或 POST。当未指定请求类型时,默认使用 GET 请求。因此,该端点现在可以服务于针对根目录的 GET 请求。
第五步:定义函数
定义当系统访问上一步中定义的 API 端点时调用的方法(例如 hello 方法)。
- 代码示例:
Python
该方法不接受参数,并返回字符串 "Hello World!"。def hello(): return 'Hello World!'
第六步:运行应用程序
添加一个条件,确保仅当 name 属性设置为 main 时才运行 Web 应用程序(默认情况下,除非显式更改,否则 name 均设置为 main)。
- 代码示例:
app.run(debug=True)- 注:要启动开发环境中的服务器,请将代码保存在 Python 文件中,并像运行其他 Python 应用程序一样运行它。
运行与访问
当 Web 应用程序服务器启动时,它会提供应用程序可访问的 IP 地址和端口。
- 访问方式: 打开浏览器并连接到服务器输出中显示的端点(通常是
127.0.0.1:5000)。 - 结果: 您将看到 Web 服务器应用程序返回的字符串 "Hello World"。
模板(Templates)与静态文件(Static Files)
模板是 Web 应用程序提供的预创建 HTML 页面。
- 类型: 可以是静态的,也可以是动态的。
- 位置: 默认情况下,Flask 应用程序会在根目录下的名为
templates的目录中查找模板。
静态文件包括图像、样式表(CSS)或 JavaScript 文件。
- 位置: 存储在根目录名为
static的文件夹中。 - 渲染方式: 静态页面按原样渲染。
动态页面通常包含针对每个请求动态填充的信息。
- 这些页面通常基于作为参数传递的值。
- 参数可以通过 URL 传递,也可以作为请求参数传递。
Flask 应用程序示例解析
让我们看一个更完整的 Flask 应用程序示例:
1. 导入与实例化
Python
from flask import Flask, render_template, request
# 实例化 Flask 并显式设置静态文件夹
myapp = Flask("MyFirstApplication", static_folder="static")
- 注:默认文件夹名为
static,但只要显式设置,您可以将静态内容放在不同名称的目录中。
2. 应用程序的三个端点
此 Web 应用程序包含三个端点:

A. 静态 HTML 页面 (/sample)
渲染一个包含图像(源自静态目录)的静态 HTML 页面。
Python
@myapp.route('/sample')
def get_sample_html():
return render_template('sample.html')
B. URL 参数传递 (/user/<username>)
用户名作为参数在 URL 中传递(尖括号 < > 内为参数)。
Python
@myapp.route('/user/<username>', methods=['GET'])
# 显式设置 methods=['GET'] 仅用于演示,如不指定默认为 GET
def show_user_profile(username):
# 使用 URL 中传递的参数渲染页面
...
C. 请求参数传递 (/user/username)
用户名作为请求参数传递。
Python
@myapp.route('/user/username')
def show_user_by_request():
# 使用作为请求传递的参数渲染页面
...

课程总结
在本视频中,您学习了:
- Flask 概述: Flask 是一个用于创建 Web 应用程序的微框架,支持 CRUD。
- 安装: 使用
pip安装 Flask 包。 - 创建流程: 导入 Flask ➡️ 实例化 Flask ➡️ 运行 App。
- 模板渲染: Flask 可以渲染静态和动态模板。