Flask – 概述
Flask – 概述
Section titled “Flask – 概述”什么是 Web 框架?
Section titled “什么是 Web 框架?”Web 应用框架,简称 Web 框架,是一系列库、工具和约定的集合,旨在简化构建 Web 应用的过程。它处理常见的底层任务,如将传入的 HTTP 请求 (request) 路由到正确的代码、管理用户会话 (session)、与数据库交互以及生成动态网页。通过提供结构和预构建组件,框架允许开发人员专注于其特定应用的独特逻辑和功能,而不是重复发明基础的 Web 功能。
什么是 Flask?
Section titled “什么是 Flask?”Flask 是一个流行的、轻量级的 Python Web 应用框架。它由 Armin Ronacher 创建,是 Pallets Projects 项目组的一部分(该项目组由早期的 Pocco 项目组演变而来)。Flask 通常被称为“微框架 (microframework)”,因为它旨在保持核心的简洁和可扩展性。它提供了 Web 开发的基本要素——请求处理 (request handling)、路由 (routing)、调试 (debugging) 和模板渲染 (templating)——但不对数据库或表单验证等其他组件强制规定选择。相反,这些功能通常通过良好集成的第三方库(称为 Flask 扩展 (extension))添加。
Flask 构建于两个核心库之上,它们也来自 Pallets Projects:
- Werkzeug: 一个全面的 WSGI (Web Server Gateway Interface) 工具库,处理请求 (request)、响应 (response)、路由 (routing) 的底层细节,并提供交互式调试器 (debugger) 等开发工具。
- Jinja2: 一个强大而现代的模板引擎 (templating engine),通过将模板文件与 Flask 应用提供的数据结合,用于渲染 (render) 动态 HTML 页面。
WSGI (Web Server Gateway Interface)
Section titled “WSGI (Web Server Gateway Interface)”WSGI 是 Python Web 应用/框架与 Web 服务器之间的标准接口。它定义了一种标准方式,供服务器将请求转发给应用,以及应用将响应发送回服务器。这种标准化意味着 Flask 应用(或任何符合 WSGI 规范的应用)可以在不同的 WSGI 服务器(如 Gunicorn、uWSGI)上运行,这些服务器通常位于不同的 Web 服务器(如 Nginx、Apache)之后。
Werkzeug
Section titled “Werkzeug”Werkzeug 为 Flask 的请求处理 (request handling) 提供了基础构建模块。它实现了健壮的请求 (request) 和响应 (response) 对象,灵活的 URL 路由系统,HTTP 工具函数(处理请求头 header、cookies、重定向 redirect),以及开发环境中不可或缺的交互式调试器 (debugger)。Flask 在其核心功能中大量使用了 Werkzeug。
Jinja2
Section titled “Jinja2”Jinja2 允许开发人员创建包含变量占位符和控制结构(如循环 loops 和条件语句 conditional statements)的 HTML 模板 (template)。当一个请求 (request) 传入时,Flask 使用 Jinja2 处理相应的模板,替换占位符并执行视图函数 (view function) 提供的数据逻辑,最终生成发送给用户浏览器的最终 HTML。
Flask 的微框架 (microframework) 理念强调灵活性。通过保持核心的小巧并依赖扩展 (extension) 提供附加功能(如数据库 ORM、表单处理、用户认证等),Flask 允许开发人员选择最适合其项目需求的特定工具和库,从而避免不必要的膨胀。