- Python Falcon教程
- Python Falcon - 主页
- Python Falcon - 简介
- Python Falcon - 环境设置
- Python Falcon - WSGI 与 ASGI
- Python Falcon - Hello World(WSGI)
- Python Falcon - 女服务员
- Python Falcon - ASGI
- 蟒蛇Falcon - Uvicorn
- Python Falcon - API 测试工具
- 请求与响应
- Python Falcon - 资源类
- Python Falcon - 应用程序类
- Python Falcon - 路由
- Falcon - 后缀响应者
- Python Falcon - 检查模块
- Python Falcon - Jinja2 模板
- Python Falcon - cookie
- Python Falcon - 状态代码
- Python Falcon - 错误处理
- Python Falcon - 钩子
- Python Falcon - 中间件
- Python Falcon - CORS
- Python Falcon - Websocket
- Python Falcon - Sqlalchemy 模型
- Python Falcon - 测试
- Python Falcon - 部署
- Python Falcon 有用资源
- Python Falcon - 快速指南
- Python Falcon - 有用的资源
- Python Falcon - 讨论
Python Falcon - 请求和响应
HTTP 协议规定,客户端向服务器发送 HTTP 请求,服务器应用特定的业务逻辑并制定响应,该响应被重定向到客户端。两者之间同步传输时,Python框架使用WSGI标准,而异步传输则遵循ASGI标准。Falcon支持两者。
WSGI/ASGI 服务器在上下文数据中提供请求和响应对象。这些对象被响应者、钩子、中间件等用作参数。对于 WSGI 应用程序,将处理falcon.Request类的实例。在 ASGI 应用程序中,它代表falcon.asgi.Request类。虽然不同,但这两个类都被设计为具有相似的属性和方法,以尽量减少混乱并更容易移植。
要求
Request 对象代表 HTTP 请求。由于它是由服务器提供的,因此该对象并不意味着由响应程序方法直接实例化。该对象提供了以下属性和方法,可在响应程序、挂钩和中间件方法中使用 -
method - 请求的 HTTP 方法(例如“GET”、“POST”等)
host - 主机请求标头字段
port - 用于请求的端口。返回给定模式的默认值(HTTP 为 80,HTTPS 为 443)
uri - 请求的完全限定 URI。
path - 请求 URI 的路径部分(不包括查询字符串)。
query_string - 请求 URI 的查询字符串部分,前面不带“?” 特点。
cookies - 名称/值 cookie 对的字典。
content_type - Content-Type 标头的值,如果标头丢失则为 None 。
Stream - 用于读取请求正文的类似文件的输入对象(如果有)。该对象提供对服务器数据流的直接访问并且是不可查找的。
bounded_stream - 流周围的类似文件的包装器
headers - 请求中的原始 HTTP 标头
params - 请求查询参数名称与其值的映射。
get_cookie_values(name) - 返回指定 cookie 的 Cookie 标头中提供的所有值。cookies 属性的别名。
get_media() - 返回请求流的反序列化形式。类似于媒体财产。
get_param(name) - 以字符串形式返回查询字符串参数的原始值。如果发布了带有application/x-wwwform-urlencoded媒体类型的 HTML 表单,Falcon 可以自动解析请求正文中的参数并将它们合并到查询字符串参数中。要启用此功能,请通过App.req_options将auto_parse_form_urlencoded设置为 True 。
回复
Response 对象表示服务器对客户端的 HTTP 响应。与 Request 对象一样,Response 对象也不应该由响应者直接实例化。
响应者、钩子函数或中间件方法通过访问以下属性和方法来操纵该对象 -
status - HTTP 状态代码,例如“200 OK”。这可以设置为http.HTTPStatus的成员、HTTP 状态行字符串或字节字符串或 int。Falcon 为常见状态代码提供了许多常量,以 HTTP_ 前缀开头,如 - falcon.HTTP_204。
media - 通过falcon.RequestOptions配置的媒体处理程序支持的可序列化对象。
text - 表示响应内容的字符串。
body - 已弃用的文本别名。
data - 表示响应内容的字节字符串。
流- 表示响应内容的类似文件的对象。
content_length - 设置内容长度标头。当未设置文本或数据属性时,它会手动设置内容长度。
content_type - 设置内容类型标头。Falcon 针对常见媒体类型的预定义常量包括 falcon.MEDIA_JSON、falcon.MEDIA_MSGPACK、falcon.MEDIA_YAML、falcon.MEDIA_XML、falcon.MEDIA_HTML、falcon.MEDIA_JS、falcon.MEDIA_TEXT、falcon.MEDIA_JPEG、falcon.MEDIA_PNG 和 falcon.MEDIA_GIF。
append_header (name, value) - 设置或附加此响应的标头。用于设置cookie。
delete_header (name) - 删除之前为此响应设置的标头。
get_header (name) - 检索给定标头的原始字符串值。
set_cookie (name, value) - 设置响应 cookie。可以多次调用此方法以将一个或多个 cookie 添加到响应中。
set_header (name, value) - 将此响应的标头设置为给定值。
set_stream (stream, content_length) - 设置流和content_length。
unset_cookie (name, domain=None, path=None) - 取消设置响应中的 cookie。此方法清除 cookie 的内容,并指示用户代理立即使自己的 cookie 副本失效。