应用程序类

Falcon同时支持WSGI (falcon.App )以及ASGI (falcon.asgi.App )协议。通过实例化相应的 App 类来创建可调用的WSGI或ASGI“应用程序”。

因为Falcon的 App 类是基于 WSGIASGI ,您可以用任何符合标准的服务器托管它们。

import falcon
import falcon.asgi

wsgi_app = falcon.App()
asgi_app = falcon.asgi.App()

WSGI应用程序

ASGI应用程序

选项

class falcon.RequestOptions

定义一组可配置的请求选项。

此类的一个实例通过 API.req_options 用于配置某些 Request 行为。

keep_blank_qs_values

设置为 False 忽略缺少值或空值的查询字符串参数(默认值 True )。对于逗号分隔的值,此选项还确定是否保留已分析列表中的空元素。

类型

布尔

auto_parse_form_urlencoded

设置为 True 以便在请求的内容类型为时自动使用请求流并将结果合并到请求的查询字符串参数中。 application/x-www-form-urlencoded (默认) False

启用此选项可使表单参数通过 paramsget_param() 等。

警告

启用此选项后,请求的正文流将保留在EOF。框架不保留原始数据。

注解

在非ASCII字节的百分比编码之前,字段的字符编码假定为UTF-8。特别节目 _charset_ 字段被忽略(如果存在)。

Falcon希望根据标准W3C算法对表单编码的请求体进行编码(另请参见http://goo.gl/6rlcux)。

auto_parse_qs_csv

设置为 True 在任何非百分比编码逗号上拆分查询字符串值(默认 False )什么时候? False ,包含逗号的值保持原样。在此模式下,列表项仅从查询字符串中相同参数名的倍数(即 /?t=1,2,3&t=4 变成 ['1,2,3', '4'] )什么时候? auto_parse_qs_csv 设置为 True ,查询字符串值也被拆分为非百分比编码的逗号,这些项被添加到最终列表中(即 /?t=1,2,3&t=4 变成 ['1', '2', '3', '4']

strip_url_path_trailing_slash

设置为 True 为了去掉URL路径末尾的尾随斜杠(如果存在)(默认 False )。当启用此选项时,通过去除尾随斜杠字符来规范化URL路径。这允许应用程序为可能以正斜杠结尾或不以正斜杠结尾的路径定义到资源的单个路由。但是,在某些情况下,这种行为可能有问题,例如在使用基于URL的签名的身份验证方案时。

default_media_type

反序列化响应时使用的默认媒体类型。此值通常设置为当 falcon.API 初始化;但是,如果独立创建,则默认为 DEFAULT_MEDIA_TYPE 由Falcon指定。

类型

STR

media_handlers

一个类似dict的对象,允许您配置要处理的媒体类型。默认情况下,为 application/json 媒体类型。

类型

处理程序

class falcon.ResponseOptions

定义一组可配置的响应选项。

此类的一个实例通过 API.resp_options 用于配置某些 Response 行为。

secure_cookies_by_default

设置为 False 在开发环境中使 secure 所有cookie的属性默认为 False .这可以通过不需要HTTPS来简化测试。但是,请注意,此设置可以通过 set_cookie()secure 克瓦格

类型

布尔

default_media_type

反序列化响应时使用的默认Internet媒体类型(RFC 2046)。此值通常设置为当 falcon.API 初始化;但是,如果独立创建,则默认为 DEFAULT_MEDIA_TYPE 由Falcon指定。

类型

STR

media_handlers

一个类似dict的对象,允许您配置要处理的媒体类型。默认情况下,为 application/json 媒体类型。

类型

处理程序

static_media_types

点前缀文件扩展名到Internet媒体类型的映射(RFC2046)。默认为 mimetypes.types_map 打电话后 mimetypes.init() .

类型

双关语

class falcon.routing.CompiledRouterOptions

定义一组可配置的路由器选项。

此类的一个实例通过 API.router_options 用于配置某些 CompiledRouter 行为。

converters

表示可在URI模板字段表达式中引用的命名转换器的集合。添加额外的转换器只是将标识符映射到转换器类的问题:

api.router_options.converters['mc'] = MyConverter

然后可以使用标识符在URI模板中使用转换器::

api.add_route('/{some_field:mc}', some_resource)

转换器名称只能包含ASCII字母、数字和下划线,并且必须以字母或下划线开头。

警告

转换器实例在请求之间共享。因此,在线程部署中,必须注意以线程安全的方式实现自定义转换器。

(另见: Field Converters