Learning Path
浏览 Flask 相关教程与章节。
PHP、Node.js、Java Web、Python Web 框架、API 与服务端开发。
教程
54
Flask 实用函数与类 API Flask 提供了一系列全局可用函数,用于生成 URL、终止请求、构建响应等常见操作。 全部通过 from flask import ... 导入。 全局代理对象 对象 类型 说明 current_app 代理 → Flask 指向当前活跃的 Flask 应用实例。在应用上下文中可用 URL 和重定向 ..
Flask 安装在开始编写 Flask 应用之前,我们需要先准备好 Python 环境并安装 Flask。 Flask 安装还是比较简单的。 Flask 是 Python的一个库,所以首先需要确保你的计算机上已经安装了 Python。 Python 版本要求 Flask 3.x 要求 Python 3.9 及以上版本。 如果你还没有安装 Python,可以从 python.org 下载安装。 安装完成后,打开终端验证: $ ..
Flask 简介 Flask 是一个轻量级的 Python Web 应用框架,由 Pallets 组织开发维护。 它以简单灵活著称,让你能够快速上手构建 Web 应用,同时具备扩展到复杂项目的能力。 Flask 是基于 Python 开发的微型 Web 框架,被称作微框架,核心原因是本身不绑定任何专用工具与依赖库,原生不内置数据库抽象层、表单验证等通用 Web 组件。Flask 具备良好的扩展支持能力,可按需额外加装功能插件;目前已有 ..
Flask JSON Flask 的 JSON 模块提供了序列化/反序列化功能,底层默认使用 Python 标准库 json,可通过 JSONProvider 替换。 导入方式:from flask import jsonify 或 from flask.json import dumps, loads jsonify 函数 最常用的 JSON 响应构建函数。将 Python 对象序列化为 JSON Response。 ..
Flask 项目结构 一个 Flask 应用可以简单到只有一个文件。 比如以下 hello.py 文件就是一个 Flask 应用: 实例 [mycode4 type='python'] from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'Hello, Worl..
Flask Message Flashing API 消息闪现(Flash)机制用于在下一次请求中显示一次性反馈消息,典型场景是「操作成功」或「输入错误」提示。 Flask 将消息存储在 Session 中,读取后自动清除。 flash 函数 参数 类型 默认值 说明 message str 必填 要显示的消息文本 catego..
Flask 中间件和扩展在 Flask 中,中间件和扩展是增强和扩展应用功能的两个关键机制。通过中间件和扩展,你可以大大增强 Flask 应用的功能和灵活性,使得应用能够满足各种复杂的需求。下面详细介绍这两者的概念和如何使用它们。 Flask 中间件:使用请求钩子在请求处理的不同阶段插入代码。创建自定义中间件类来处理请求和响应。 Flask 扩展:使用现有的扩展(如 Flask-SQLAlchemy、Flask-WTF)来添加功能。..
Flask 数据库操作 在 Flask 中,数据库操作是构建 Web 应用的一个重要方面。Flask 提供了多种方式来与数据库进行交互,包括直接使用 SQL 和利用 ORM(对象关系映射)工具,如 SQLAlchemy。以下是对 Flask 数据库操作的详细说明,包括使用 SQLAlchemy 的基本操作和 SQL 语句的直接执行。 使用 SQLAlchemy:定义模型,配置数据库,执行基本的 CRUD 操作。创建和管理数据库:使用 d..
Flask Request 请求对象 API Request 类封装了客户端发来的 HTTP 请求的所有信息。 通过 from flask import request 导入代理对象,在视图函数中直接使用。 常用属性速查 属性 类型 说明 示例值 method str HTTP 请求方法 'GET'、'POST..
Flask 请求生命周期 理解 Flask 请求的完整生命周期,是写好 Flask 应用的关键。 本章从源码层面拆解一个 HTTP 请求从进入服务器到返回响应的全过程,帮你建立清晰的执行模型。 什么是请求生命周期 请求生命周期(Request Lifecycle)指的是一个 HTTP 请求在 Flask 内部经历的完整处理过程。 它包含以下阶段:接收请求 → 创建上下文 → 预处理 → 路由分发 → 视图执行 → 响应构建 → 清理..
Flask 请求与响应 Web 应用的核心是「接收请求,返回响应」,本章全面讲解 Flask 中如何读取请求数据和构造各种类型的响应。 所有示例都可以在开发服务器中直接运行验证。 请求对象——request Flask 通过全局代理对象 request 提供所有请求信息。 虽然它是「全局」对象,但 Flask 内部通过线程隔离机制确保每个请求获取的是自己的数据。 实例 [mycode4 type='python�..
Flask Response 响应对象 API Response 类表示 Flask 视图函数返回的 HTTP 响应。大多数情况下你不需要直接创建它——Flask 会自动将视图函数返回值转换为 Response。 需要手动控制时,使用 make_response() 函数。 构造函数 参数 类型 默认值 说明 response str / bytes / iter..
Flask 路由路由(Routing)是 Web 框架最核心的功能之一,它决定了哪个 URL 由哪个函数处理。 Flask 路由是 Web 应用程序中将 URL 映射到 Python 函数的机制。 Flask 路由是 Flask 应用的核心部分,用于处理不同 URL 的请求,并将请求的处理委托给相应的视图函数。 以下是关于 Flask 路由的详细说明,包括路由的定义、参数、方法和规则等。 基础路由 使用 @app.route() ..
Flask Session API Session 用于在同一用户的不同请求之间保存数据。Flask 默认使用签名 Cookie 实现,数据存储在客户端但无法被篡改。 通过 from flask import session 导入,像字典一样使用。 session 代理对象 session 是一个代理,指向当前请求的 SessionMixin 实例。只在请求上下文中可用。 属性/方法 说明 ..
Flask Session 与 Cookie HTTP 协议本身是无状态的——服务器不会自动记住两次请求是否来自同一用户。 Flask 通过 Session 机制解决了这个问题,让 Web 应用能够「记住」用户的状态。 Session 的工作原理 Flask 默认使用 SecureCookieSession,它的工作方式是: Session 数据被序列化后用密钥签名,保存在浏览器的 Cookie 中 每次请求时,浏览器自动..
Flask Session Interface API SessionInterface 是 Session 的底层抽象,允许你替换 Flask 默认的 Cookie 存储方式为 Redis、数据库等外部存储。 自定义实现只需继承 SessionInterface 并实现两个方法。 SessionInterface 抽象基类 属性/方法 说明 null_session_class ..
Flask Signals 信号 API Flask 使用 Blinker 库在关键事件发生时发送信号。你可以连接这些信号来执行额外的日志记录、监控等操作。 信号并非 Flask 的核心功能——大部分需求通过钩子(before_request 等)即可满足。 核心请求信号 信号 触发时机 传递的参数 request_started 请求上下文建立后、预处理之前 s..
Flask 静态文件 任何一个完整的 Web 应用都离不开 CSS、JavaScript 和图片等静态资源。 本章介绍 Flask 如何管理和提供静态文件。 默认静态文件约定 Flask 默认从应用目录下的 static/ 文件夹提供静态文件。 你只需要创建这个文件夹并将静态资源放入其中即可: myflaskapp/ ├── app.py ├── templates/ │ └── index.html └── static/..
Flask 第一个应用 上一章节我们已经成功安装了 Flask,接下来我们可以创建一个简单的 Flask 应用。 首先,创建一个名为 app.py 的文件,并添加以下内容: 实例( app.py ) [mycode4 type='python'] from flask import Flask app = Flask(__name__) @app.route('/') def hello_w..
Flask Stream Helpers API stream_with_context 用于在生成器函数中保持请求上下文,使流式响应中仍能访问 request、session 等对象。 stream_with_context 参数 类型 说明 generator_or_function iterator / callable 生成器函数或可调用对象。作为装饰器或..
Flask 模板渲染 API Flask 使用 Jinja2 引擎渲染模板,将 Python 数据嵌入 HTML 页面。 模板文件默认放在项目根目录的 templates/ 文件夹中。 render_template 最常用的模板渲染函数,从文件加载模板并渲染。 参数 类型 说明 template_name_or_list str / list 模板文件名(相对于..
Flask 模板渲染 在 Python 代码中拼接 HTML 字符串既繁琐又危险(容易产生 XSS 漏洞),Flask 集成了 Jinja2 模板引擎来解决这个问题。 模板让你将业务逻辑和页面展示分离,写出更安全、更易维护的代码。 render_template 基础 render_template() 是 Flask 中最常用的模板渲染函数。 它的第一个参数是模板文件名,后面的关键字参数会作为变量传递给模板。 实例 [my..
Flask Test CLI Runner API FlaskCliRunner 基于 Click 的 CliRunner,用于测试 Flask CLI 命令。 通过 app.test_cli_runner() 创建实例。 创建方式 方式 说明 app.test_cli_runner(**kwargs) 创建 CLI 测试运行器。kwargs 传递给 CliRunner 构造函数..
Flask Test Client API FlaskClient 是一个模拟浏览器,可以在不启动服务器的情况下发送请求并验证响应。 通过 app.test_client() 创建实例。 创建测试客户端 方式 说明 app.test_client(use_cookies=True) 标准创建方式。use_cookies=False 禁用 Cookie 处理 w..