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对的dict。

  • content_type – 内容类型头的值,如果缺少该头,则为 None。

  • stream – 类似于文件的输入对象,用于读取请求的主体,如果有的话。这个对象提供了对服务器数据流的直接访问,是不可搜索的。

  • bounded_stream – 围绕stream的类文件包装器

  • headers – 来自请求的原始HTTP头信息

  • params – 请求查询参数名称到其值的映射。

  • get_cookie_values(name) – 返回Cookie头中为命名的cookie提供的所有值。cookie属性的别名。

  • get_media() – 返回请求流的反序列化形式。类似于媒体属性。

  • get_param(name) – 以字符串形式返回一个查询字符串参数的原始值。如果一个具有 application/x-wwwform-urlencoded 媒体类型的HTML表单被POST,Falcon可以自动解析请求体中的参数并将其合并到查询字符串参数中。要启用此功能,请通过 App.req_optionsauto_parse_form_urlencoded 设置为True。

响应

响应对象代表服务器对客户端的HTTP响应。和Request对象一样,Response对象也不是为了被响应者直接实例化。

响应者、钩子函数或中间件方法通过访问以下属性和方法来操作这个对象:

  • status – HTTP状态代码,例如,’200 OK’。这可以设置为 http.HTTPStatus 的成员,HTTP状态行字符串或字节字符串,或一个int。Falcon为常见的状态代码提供了一些常量,以HTTP_前缀开始,如 - falcon.HTTP_204 。

  • media - 通过 falcon.RequestOptions 配置的媒体处理程序所支持的可序列化的对象

  • text – 一个代表响应内容的字符串。

  • body – 废弃的text的别名。

  • data – 代表响应内容的一个字节字符串。

  • stream – 代表响应内容的类文件对象。

  • content_length – 设置Content-Length头。当text或data属性没有被设置时,它手动设置内容长度。

  • content_type – 设置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, and falcon.MEDIA_GIF。

  • append_header (name, value) – 为这个响应设置或附加一个头。用于设置cookies。

  • delete_header (name) – 删除之前为这个响应设置的头信息。

  • get_header (name) – 检索给定头目的原始字符串值。

  • set_cookie (name, value) – 设置一个响应的cookie。这个方法可以被多次调用,以添加一个或多个cookie到响应中。

  • set_header (name, value) – 为这个响应设置一个给定值的头。

  • set_stream (stream, content_length) – 同时设置stream和content_length。

  • unset_cookie (name, domain=None, path=None) – 取消响应中的cookie。这个方法清除了cookie的内容,并指示用户代理立即使它自己的cookie副本过期。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程