HTTP 实用程序 — Werkzeug 文档
来自菜鸟教程
Werkzeug/docs/2.0.x/http
HTTP 实用程序
Werkzeug 提供了几个函数来解析和生成 HTTP 标头,这些功能在实现 WSGI 中间件或在较低级别上操作时非常有用。 所有这些功能也从请求和响应对象中公开。
日期时间函数
这些函数简化了 HTTP 上下文中的时间处理。 Werkzeug 在 UTC 中生成时区感知 datetime
对象。 将日期时间对象传递给 Werkzeug 时,它假定任何原始日期时间都采用 UTC。
在比较 Werkzeug 中的日期时间值时,您自己的日期时间对象也必须是时区感知的,或者您必须使 Werkzeug 中的值变得幼稚。
dt = datetime.now(timezone.utc)
获取 UTC 中的当前时间。dt = datetime(..., tzinfo=timezone.utc)
创建一个 UTC 时间。dt = dt.replace(tzinfo=timezone.utc)
通过假设它在 UTC 中使一个天真的对象知道。dt = dt.replace(tzinfo=None)
使感知对象幼稚。
标题实用程序
以下实用程序可以很好地处理 HTTP 标头,但不会解析它们。 如果您正在处理条件响应,或者您想要代理任意请求但想要删除不支持 WSGI 的逐跳标头,它们将非常有用。 还有一个函数可以从解析的数据中创建 HTTP 标头字符串。
条件响应助手
对于条件响应,以下函数可能有用:
常数
- werkzeug.http.HTTP_STATUS_CODES
- 状态代码 -> 默认状态消息对的字典。 这被包装器和其他地方使用,其中整数状态代码在整个 Werkzeug 中被扩展为字符串。
表单数据解析
Werkzeug 提供与请求对象分开的表单解析函数,以便您可以从普通的 WSGI 环境访问表单数据。
表单数据解析器当前支持以下格式:
- 应用程序/x-www-form-urlencoded
- 多部分/表单数据
当前不支持嵌套多部分 (Werkzeug 0.9),但任何现代 Web 浏览器都不使用它。
用法示例:
通常,WSGI 环境由 WSGI 网关提供,其中传入数据是其中的一部分。 如果你想为单元测试生成这样的假 WSGI 环境,你可能需要使用 create_environ()
函数或 EnvironBuilder
来代替。