API引用

子模块

sanic.app 模块

class sanic.app.Sanic(name=None, router=None, error_handler=None, load_env=True, request_class=None, strict_slashes=False, log_config=None, configure_logging=True)

基类:object

add_route(handler, uri, methods=frozenset({'GET'}), host=None, strict_slashes=None, version=None, name=None, stream=False)

将类实例或函数注册为应用程序URL路由的处理程序的帮助器方法。

参数
  • handler -- 函数或类实例

  • uri -- URL路径

  • methods -- 允许的方法列表或元组,如果使用httpmethodview,则会重写这些方法

  • host --

  • strict_slashes --

  • version --

  • name -- URL的用户定义路由名称

  • stream -- 布尔值,指定处理程序是否为流处理程序

返回

函数或类实例

add_task(task)

在循环开始后,安排任务稍后运行。与asyncio.secure-future不同的是,它也不会返回未来,实际的secure-future调用会延迟到服务器启动之前。

参数

task -- 未来、古鲁特或等待

add_websocket_route(handler, uri, host=None, strict_slashes=None, subprotocols=None, name=None)

将函数注册为WebSocket路由的帮助器方法。

参数
  • handler -- 可以处理WebSocket请求的类的可调用函数或实例

  • host -- 主机IP或FQDN详细信息

  • uri -- 将映射到WebSocket处理程序的URL路径

  • strict_slashes -- 如果API端点需要以“/”终止或不终止

  • subprotocols -- 用于WebSocket握手的子协议

  • name -- 为该URL分配的唯一名称,以便它可以与 url_for()

返回

反对者装饰者 websocket()

property asgi_client
blueprint(blueprint, **options)

在应用程序上注册蓝图。

参数
  • blueprint -- 蓝图对象或其(列表、元组)

  • options -- 带蓝图默认值的选项字典

返回

没有什么

converted_response_type(response)

未提供实现。

delete(uri, host=None, strict_slashes=None, version=None, name=None)

在下添加API URL DELETE HTTP 方法

参数
  • uri -- 要标记到的URL DELETE 方法 HTTP

  • host -- 要使用的服务的主机IP或FQDN

  • strict_slashes -- 指导 Sanic 检查请求URL是否需要使用 /

  • version -- API版本

  • name -- 可用于标识路由的唯一名称

返回

具有 route() 方法 的对象装饰器

enable_websocket(enable=True)

启用或禁用对WebSocket的支持。

如果将WebSocket路由添加到应用程序,则会自动启用WebSocket。

exception(*exceptions)

修饰要注册为异常处理程序的函数

参数

exceptions -- 例外

返回

装饰功能

get(uri, host=None, strict_slashes=None, version=None, name=None)

在下添加API URL GET HTTP 方法

参数
  • uri -- 要标记到的URL GET 方法 HTTP

  • host -- 要使用的服务的主机IP或FQDN

  • strict_slashes -- 指导 Sanic 检查请求URL是否需要使用 /

  • version -- API版本

  • name -- 可用于标识路由的唯一名称

返回

具有 route() 方法 的对象装饰器

head(uri, host=None, strict_slashes=None, version=None, name=None)
listener(event)

从修饰函数创建侦听器。

参数

event -- 要收听的事件

property loop

与asyncio.get_event_loop()同义。

仅在使用时支持 app.run 方法。

middleware(middleware_or_request)

装饰和注册在请求之前调用的中间件。可以调用为 @app.middleware@应用中间件(请求)

Param

中间件请求:用于标识正在注册的中间件类型的可选参数。

options(uri, host=None, strict_slashes=None, version=None, name=None)

在下添加API URL OPTIONS HTTP 方法

参数
  • uri -- 要标记到的URL OPTIONS 方法 HTTP

  • host -- 要使用的服务的主机IP或FQDN

  • strict_slashes -- 指导 Sanic 检查请求URL是否需要使用 /

  • version -- API版本

  • name -- 可用于标识路由的唯一名称

返回

具有 route() 方法 的对象装饰器

patch(uri, host=None, strict_slashes=None, stream=False, version=None, name=None)

在下添加API URL PATCH HTTP 方法

参数
  • uri -- 要标记到的URL PATCH 方法 HTTP

  • host -- 要使用的服务的主机IP或FQDN

  • strict_slashes -- 指导 Sanic 检查请求URL是否需要使用 /

  • version -- API版本

  • name -- 可用于标识路由的唯一名称

返回

具有 route() 方法 的对象装饰器

post(uri, host=None, strict_slashes=None, stream=False, version=None, name=None)

在下添加API URL POST HTTP 方法

参数
  • uri -- 要标记到的URL POST 方法 HTTP

  • host -- 要使用的服务的主机IP或FQDN

  • strict_slashes -- 指导 Sanic 检查请求URL是否需要使用 /

  • version -- API版本

  • name -- 可用于标识路由的唯一名称

返回

具有 route() 方法 的对象装饰器

put(uri, host=None, strict_slashes=None, stream=False, version=None, name=None)

在下添加API URL PUT HTTP 方法

参数
  • uri -- 要标记到的URL PUT 方法 HTTP

  • host -- 要使用的服务的主机IP或FQDN

  • strict_slashes -- 指导 Sanic 检查请求URL是否需要使用 /

  • version -- API版本

  • name -- 可用于标识路由的唯一名称

返回

具有 route() 方法 的对象装饰器

register_blueprint(*args, **kwargs)

为调用 blueprint() 方法

注解

在1.0中被弃用。使用 blueprint() 相反。

参数
  • args -- 蓝图对象或其(列表、元组)

  • kwargs -- 带蓝图默认值的选项字典

返回

没有

register_listener(listener, event)

注册给定事件的侦听器。

ARG:

listener:callable,即setup_db(app,loop)event:何时注册listener,即'before_server_start'

返回:侦听器

register_middleware(middleware, attach_to='request')

注册一个应用程序级中间件,该中间件将附加到此应用程序下注册的所有API URL。

此方法由 middleware() 在应用程序级别提供的装饰器。

参数
  • middleware -- 要附加到中间件的回调方法

  • attach_to -- 在中间件的生命周期中需要调用中间件的状态 HTTP请求 . 请求 -在处理请求之前调用 响应 -在返回响应之前调用

返回

装饰器方法

remove_route(uri, clean_cache=True, host=None)

此方法为应用程序用户提供了一种机制,通过该机制可以从 Sanic 对象

警告

删除路由在V19.06中已弃用,将从未来版本中删除。

参数
  • uri -- 要从应用程序中删除的URL路径

  • clean_cache -- 如果需要清理LRU路由缓存,则指示SANIC

  • host -- 特定于主机的IP地址或FQDN

返回

没有

route(uri, methods=frozenset({'GET'}), host=None, strict_slashes=None, stream=False, version=None, name=None)

修饰要注册为路由的函数

参数
  • uri -- URL路径

  • methods -- 允许的方法列表或元组

  • host --

  • strict_slashes --

  • stream --

  • version --

  • name -- URL的用户定义路由名称

返回

装饰功能

run(host: Optional[str] = None, port: Optional[int] = None, debug: bool = False, ssl: Union[dict, ssl.SSLContext, None] = None, sock: Optional[socket.socket] = None, workers: int = 1, protocol: Type[asyncio.protocols.Protocol] = None, backlog: int = 100, stop_event: Any = None, register_sys_signals: bool = True, access_log: Optional[bool] = None, **kwargs) → None

运行HTTP服务器并监听,直到键盘中断或终端信号。在终端上,在关闭之前排空连接。

参数
  • host (str) -- 主机地址

  • port (int) -- 端口到主机上

  • debug (bool) -- 启用调试输出(减慢服务器速度)

  • ssl -- sslcontext,或工作进程的ssl加密的证书和密钥的位置

:键入ssl:sslcontext或dict:param sock:socket,以便服务器接受来自以下对象的连接:type sock:socket:param workers:在遵守之前接收的进程数:type workers:int:param protocol:asyncio协议的子类:type protocol:type [协议] :param backlog:系统未接受的连接数。

在拒绝新连接之前允许

参数
  • stop_event (None) -- 停止应用程序前要触发的事件-已弃用

  • register_sys_signals (bool) -- 注册 SIG* 事件

  • access_log (bool) -- 允许写入访问日志(减慢服务器速度)

返回

没有什么

static(uri, file_or_directory, pattern='/?.+', use_modified_since=True, use_content_range=False, stream_large_files=False, name='static', host=None, strict_slashes=None, content_type=None)

注册根目录以从中提供文件。输入可以是文件或目录。此方法将使设置 Route 服务静态文件所必需的。

参数
  • uri -- 用于服务静态内容的URL路径

  • file_or_directory -- 包含静态文件的静态文件/目录的路径

  • pattern -- 识别有效静态文件的regex模式

  • use_modified_since -- 如果为真,则发送文件修改时间,如果浏览器与服务器匹配,则返回“未修改”。

  • use_content_range -- 如果为真,则处理范围请求的头并发送请求的文件部分

  • stream_large_files -- 如果为真,请使用 StreamingHTTPResponse.file_stream() 处理程序而不是 HTTPResponse.file() 用于发送文件的处理程序。如果这是一个整数,则表示要切换到的阈值大小 StreamingHTTPResponse.file_stream()

  • name -- 用于URL的用户定义名称

  • host -- 要使用的服务的主机IP或FQDN

  • strict_slashes -- 指导 Sanic 检查请求URL是否需要使用 /

  • content_type -- 标题的用户定义内容类型

返回

没有

stop()

这会杀死 Sanic

property test_client
url_for(view_name: str, **kwargs)

基于视图名称和提供的值生成URL。

为了构建URL,必须将所有请求参数作为关键字参数提供,并且每个参数必须通过指定参数类型的测试。如果不满足这些条件,a URLBuildError 将被抛出。

不是请求参数的关键字参数将包含在输出URL的查询字符串中。

参数
  • view_name -- 引用视图名称的字符串

  • **kwargs -- 用于生成请求参数和查询字符串参数的键和值。

返回

内置URL

产生:

URLBuildError

websocket(uri, host=None, strict_slashes=None, subprotocols=None, name=None)

修饰要注册为WebSocket路由的函数:param uri:url的路径:param host:host ip或fqdn详细信息:param strict_slashes:如果API端点需要终止

是否带有“/”

参数
  • subprotocols -- 具有支持的子协议的str的可选列表

  • name -- 为该URL分配的唯一名称,以便它可以与 url_for()

返回

装饰功能

sanic.blueprints 模块

class sanic.blueprints.Blueprint(name, url_prefix=None, host=None, version=None, strict_slashes=None)

基类:object

add_route(handler, uri, methods=frozenset({'GET'}), host=None, strict_slashes=None, version=None, name=None, stream=False)

从函数创建蓝图路由。

参数
  • handler -- 用于处理URI请求的函数。接受带有视图类方法的函数或类实例。

  • uri -- 路由可访问的终结点。

  • methods -- 可接受的HTTP方法列表。

  • host -- 要使用的SANIC服务器的FQDN的IP地址。

  • strict_slashes -- 强制通过培训请求API URL /

  • version -- 蓝图版本

  • name -- URL的用户定义路由名称

  • stream -- 布尔值,指定处理程序是否为流处理程序

返回

函数或类实例

add_websocket_route(handler, uri, host=None, version=None, name=None)

从函数创建蓝图WebSocket路由。

参数
  • handler -- 用于处理URI请求的函数。接受带有视图类方法的函数或类实例。

  • uri -- 路由可访问的终结点。

  • host -- 要使用的SANIC服务器的FQDN的IP地址。

  • version -- 蓝图版本

  • name -- 用于标识WebSocket路由的唯一名称

返回

函数或类实例

delete(uri, host=None, strict_slashes=None, version=None, name=None)

在下添加API URL DELETE HTTP 方法

参数
  • uri -- 要标记到的URL DELETE 方法 HTTP

  • host -- 要使用的服务的主机IP或FQDN

  • strict_slashes -- 指导 sanic.app.Sanic 检查请求URL是否需要使用 /

  • version -- API版本

  • name -- 可用于标识路由的唯一名称

返回

具有 route() 方法 的对象装饰器

exception(*args, **kwargs)

此方法允许为有问题的当前蓝图创建全局异常处理程序。

参数
  • args -- 处理程序要捕获的python异常列表

  • kwargs -- 要传递给异常处理程序的其他可选参数

:返回修饰方法以处理任何

在此蓝图下注册的路线。

get(uri, host=None, strict_slashes=None, version=None, name=None)

在下添加API URL GET HTTP 方法

参数
  • uri -- 要标记到的URL GET 方法 HTTP

  • host -- 要使用的服务的主机IP或FQDN

  • strict_slashes -- 指导 sanic.app.Sanic 检查请求URL是否需要使用 /

  • version -- API版本

  • name -- 可用于标识路由的唯一名称

返回

具有 route() 方法 的对象装饰器

static group(*blueprints, url_prefix='')

创建一个蓝图列表,可以选择在通用URL前缀下对其进行分组。

参数
  • blueprints -- 要注册为组的蓝图

  • url_prefix -- 所有子前缀的URL路由

head(uri, host=None, strict_slashes=None, version=None, name=None)

在下添加API URL HEAD HTTP 方法

参数
  • uri -- 要标记到的URL HEAD 方法 HTTP

  • host -- 要使用的服务的主机IP或FQDN

  • strict_slashes -- 指导 sanic.app.Sanic 检查请求URL是否需要使用 /

  • version -- API版本

  • name -- 可用于标识路由的唯一名称

返回

具有 route() 方法 的对象装饰器

listener(event)

从修饰函数创建侦听器。

参数

event -- 要收听的事件。

middleware(*args, **kwargs)

从修饰函数创建蓝图中间件。

参数
  • args -- 调用中间件时要使用的位置参数

  • kwargs -- 可用于中间件的可选关键字参数。

options(uri, host=None, strict_slashes=None, version=None, name=None)

在下添加API URL OPTIONS HTTP 方法

参数
  • uri -- 要标记到的URL OPTIONS 方法 HTTP

  • host -- 要使用的服务的主机IP或FQDN

  • strict_slashes -- 指导 sanic.app.Sanic 检查请求URL是否需要使用 /

  • version -- API版本

  • name -- 可用于标识路由的唯一名称

返回

具有 route() 方法 的对象装饰器

patch(uri, host=None, strict_slashes=None, stream=False, version=None, name=None)

在下添加API URL PATCH HTTP 方法

参数
  • uri -- 要标记到的URL PATCH 方法 HTTP

  • host -- 要使用的服务的主机IP或FQDN

  • strict_slashes -- 指导 sanic.app.Sanic 检查请求URL是否需要使用 /

  • version -- API版本

  • name -- 可用于标识路由的唯一名称

返回

具有 route() 方法 的对象装饰器

post(uri, host=None, strict_slashes=None, stream=False, version=None, name=None)

在下添加API URL POST HTTP 方法

参数
  • uri -- 要标记到的URL POST 方法 HTTP

  • host -- 要使用的服务的主机IP或FQDN

  • strict_slashes -- 指导 sanic.app.Sanic 检查请求URL是否需要使用 /

  • version -- API版本

  • name -- 可用于标识路由的唯一名称

返回

具有 route() 方法 的对象装饰器

put(uri, host=None, strict_slashes=None, stream=False, version=None, name=None)

在下添加API URL PUT HTTP 方法

参数
  • uri -- 要标记到的URL PUT 方法 HTTP

  • host -- 要使用的服务的主机IP或FQDN

  • strict_slashes -- 指导 sanic.app.Sanic 检查请求URL是否需要使用 /

  • version -- API版本

  • name -- 可用于标识路由的唯一名称

返回

具有 route() 方法 的对象装饰器

register(app, options)

将蓝图注册到sanic应用程序。

参数
  • app -- 实例 sanic.app.Sanic

  • options -- 将蓝图注册到应用程序时要使用的选项。 url_prefix -覆盖蓝图前缀的URL前缀

route(uri, methods=frozenset({'GET'}), host=None, strict_slashes=None, stream=False, version=None, name=None)

从修饰函数创建蓝图路由。

参数
  • uri -- 路由可访问的终结点。

  • methods -- 可接受的HTTP方法列表。

  • host -- 要使用的SANIC服务器的FQDN的IP地址。

  • strict_slashes -- 强制通过培训请求API URL /

  • stream -- 如果路由应该提供流支持

  • version -- 蓝图版本

  • name -- 用于标识路由的唯一名称

:返回一个修饰方法,调用该方法时将返回一个对象

类型的 FutureRoute

static(uri, file_or_directory, *args, **kwargs)

从修饰函数创建蓝图静态路由。

参数
  • uri -- 路由可访问的终结点。

  • file_or_directory -- 静态资产。

websocket(uri, host=None, strict_slashes=None, version=None, name=None)

从修饰函数创建蓝图WebSocket路由。

参数
  • uri -- 路由可访问的终结点。

  • host -- 要使用的SANIC服务器的FQDN的IP地址。

  • strict_slashes -- 强制通过培训请求API URL /

  • version -- 蓝图版本

  • name -- 用于标识WebSocket路由的唯一名称

class sanic.blueprints.FutureException(handler, args, kwargs)

基类:tuple

property args

字段编号1的别名

property handler

字段编号0的别名

property kwargs

字段编号2的别名

class sanic.blueprints.FutureListener(handler, uri, methods, host)

基类:tuple

property handler

字段编号0的别名

property host

字段编号3的别名

property methods

字段编号2的别名

property uri

字段编号1的别名

class sanic.blueprints.FutureMiddleware(middleware, args, kwargs)

基类:tuple

property args

字段编号1的别名

property kwargs

字段编号2的别名

property middleware

字段编号0的别名

class sanic.blueprints.FutureRoute(handler, uri, methods, host, strict_slashes, stream, version, name)

基类:tuple

property handler

字段编号0的别名

property host

字段编号3的别名

property methods

字段编号2的别名

property name

字段编号7的别名

property stream

字段5的别名

property strict_slashes

字段编号4的别名

property uri

字段编号1的别名

property version

字段编号6的别名

class sanic.blueprints.FutureStatic(uri, file_or_directory, args, kwargs)

基类:tuple

property args

字段编号2的别名

property file_or_directory

字段编号1的别名

property kwargs

字段编号3的别名

property uri

字段编号0的别名

sanic.bluent_组模块

class sanic.blueprint_group.BlueprintGroup(url_prefix=None)

基类:collections.abc.MutableSequence

这个类提供了一种机制来使用 Blueprint.group 方法。为了避免重新编写一些现有的实现,这个类提供了一个自定义迭代器实现,它允许您将这个类的对象用作现有实现中的列表/元组。

property blueprints

检索此组下所有可用蓝图的列表。:返回:蓝图实例列表

insert(index: int, item: object) → None

抽象类 MutableSequence 利用此插入方法执行 BlueprintGroup.append 操作。

参数
  • index -- 用于删除新蓝图项的索引

  • item -- 新的 Blueprint 对象。

返回

没有

middleware(*args, **kwargs)

可以用来实现属于这个特定蓝图组的所有蓝图的中间件插件的装饰器。

对于嵌套的蓝图组,相同的中间件递归地应用于每个蓝图。

参数
  • args -- 要使用中间件的可选位置参数

  • kwargs -- 用于中间件的可选关键字arg

返回

应用中间件的部分功能

property url_prefix

检索当前蓝图组使用的URL前缀:返回:带URL前缀的字符串

sanic.config模块

class sanic.config.Config(defaults=None, load_env=True, keep_alive=None)

基类:dict

from_envvar(variable_name)

从指向配置文件的环境变量加载配置。

参数

variable_name -- 环境变量的名称

返回

布尔。 True 如果能够加载配置, False 否则。

from_object(obj)

更新给定对象的值。对象通常是模块或类。

只有该对象中的大写变量存储在配置中。示例用法:

from yourapplication import default_config
app.config.from_object(default_config)

or also:
app.config.from_object('myproject.config.MyConfigClass')

不应使用此函数加载实际配置,而应使用配置默认值。实际配置应加载 from_pyfile() 最好是从不在包内的位置安装,因为包可能在系统范围内安装。

参数

obj -- 保存配置的对象

from_pyfile(filename)

从python文件更新配置中的值。只有该模块中的大写变量存储在配置中。

参数

filename -- 配置文件的绝对路径

load_environment_vars(prefix='SANIC_')

查找前缀环境变量并将其应用于配置(如果存在)。

sanic.config.strtobool(val)

此函数是从distutils.utils中借用的。虽然distuils是stdlib的一部分,但在主应用程序代码中使用distuils感觉很奇怪。

该函数被修改为执行其会话并实际返回bool而不是int。

sanic.constants模块

sanic.cookies模块

class sanic.cookies.Cookie(key, value)

基类:dict

从simplecookie gottagofast中删去的莫尔斯电码

encode(encoding)

按照开发人员指示的特定编码类型对cookie内容进行编码。利用 str.encode() 方法由python提供。

此方法可用于编码和嵌入 utf-8 内容到cookies中。

参数

encoding -- 与cookie一起使用的编码

返回

在选择的编解码器中编码的cookie。

除了

UnicodeEncodeError

class sanic.cookies.CookieJar(headers)

基类:dict

当添加和删除cookie时,cookiejar会动态地写入头,通过使用multiHeader类提供一个唯一的键来编码设置cookie,从而绕过了每个名称一个头的限制。

sanic.exceptions模块

exception sanic.exceptions.ContentRangeError(message, content_range)

基类:sanic.exceptions.SanicException

status_code = 416
exception sanic.exceptions.FileNotFound(message, path, relative_url)

基类:sanic.exceptions.NotFound

exception sanic.exceptions.Forbidden(message, status_code=None)

基类:sanic.exceptions.SanicException

status_code = 403
exception sanic.exceptions.HeaderExpectationFailed(message, status_code=None)

基类:sanic.exceptions.SanicException

status_code = 417
exception sanic.exceptions.HeaderNotFound(message, status_code=None)

基类:sanic.exceptions.InvalidUsage

exception sanic.exceptions.InvalidRangeType(message, content_range)

基类:sanic.exceptions.ContentRangeError

exception sanic.exceptions.InvalidUsage(message, status_code=None)

基类:sanic.exceptions.SanicException

status_code = 400
exception sanic.exceptions.MethodNotSupported(message, method, allowed_methods)

基类:sanic.exceptions.SanicException

status_code = 405
exception sanic.exceptions.NotFound(message, status_code=None)

基类:sanic.exceptions.SanicException

status_code = 404
exception sanic.exceptions.PayloadTooLarge(message, status_code=None)

基类:sanic.exceptions.SanicException

status_code = 413
exception sanic.exceptions.PyFileError(file)

基类:Exception

exception sanic.exceptions.RequestTimeout(message, status_code=None)

基类:sanic.exceptions.SanicException

Web服务器(运行网站)认为在1)客户端和服务器之间建立IP连接(套接字)和2)在该套接字上接收到任何数据之间的时间间隔太长,因此服务器已断开连接。套接字连接实际上已丢失-Web服务器已在该特定套接字连接上“超时”。

status_code = 408
exception sanic.exceptions.SanicException(message, status_code=None)

基类:Exception

exception sanic.exceptions.ServerError(message, status_code=None)

基类:sanic.exceptions.SanicException

status_code = 500
exception sanic.exceptions.ServiceUnavailable(message, status_code=None)

基类:sanic.exceptions.SanicException

服务器当前不可用(因为它因维护而过载或停机)。一般来说,这是一种临时状态。

status_code = 503
exception sanic.exceptions.URLBuildError(message, status_code=None)

基类:sanic.exceptions.ServerError

exception sanic.exceptions.Unauthorized(message, status_code=None, scheme=None, **kwargs)

基类:sanic.exceptions.SanicException

未经授权的异常(401 HTTP状态代码)。

参数
  • message -- 描述异常的消息。

  • status_code -- HTTP状态代码。

  • scheme -- 要使用的身份验证方案的名称。

当存在时,Kwargs用于完成WWW身份验证头。

实例:

# With a Basic auth-scheme, realm MUST be present:
raise Unauthorized("Auth required.",
                   scheme="Basic",
                   realm="Restricted Area")

# With a Digest auth-scheme, things are a bit more complicated:
raise Unauthorized("Auth required.",
                   scheme="Digest",
                   realm="Restricted Area",
                   qop="auth, auth-int",
                   algorithm="MD5",
                   nonce="abcdef",
                   opaque="zyxwvu")

# With a Bearer auth-scheme, realm is optional so you can write:
raise Unauthorized("Auth required.", scheme="Bearer")

# or, if you want to specify the realm:
raise Unauthorized("Auth required.",
                   scheme="Bearer",
                   realm="Restricted Area")
status_code = 401
sanic.exceptions.abort(status_code, message=None)

基于SaniceException引发异常。返回适用于给定状态代码的HTTP响应消息,除非提供。

参数
  • status_code -- 要返回的HTTP状态代码。

  • message -- HTTP响应主体。默认为给定状态代码的response.py中的消息。

sanic.exceptions.add_status_code(code)

用于将异常添加到 SanicException .

sanic.handlers模块

class sanic.handlers.ContentRangeHandler(request, stats)

基类:object

解析和处理传入请求头以提取内容范围信息的机制。

参数
  • request (sanic.request.Request) -- 传入API请求

  • stats (posix.stat_result) -- 与内容相关的统计信息

变量
end
headers
size
start
total
class sanic.handlers.ErrorHandler

基类:object

提供 sanic.app.Sanic 具有处理和处理任何和所有未捕获异常的机制的应用程序,其方式由应用程序开发人员设置。

这个错误处理框架内置在核心中,开发人员可以对其进行扩展,以执行各种任务,从记录错误状态到将其报告给可用于实时警报系统的外部服务。

add(exception, handler)

向已存在的处理程序对象添加新的异常处理程序。

参数
返回

没有

cached_handlers = None
default(request, exception)

为以下对象提供默认行为 ErrorHandler . 如果开发者选择 ErrorHandler 它们可以为这个方法提供一个自定义的实现,使其以他们认为合适的方式工作。

参数
返回

handlers = None
log(message, level='error')

已弃用,请勿使用。

lookup(exception)

查找的现有实例 ErrorHandler 并获取特定类型异常的注册处理程序。

此方法利用dict查找加快检索过程。

参数

exception (sanic.exceptions.SanicException or Exception) -- 异常类型

返回

已注册函数(如果找到) None 否则

response(request, exception)

获取并执行异常处理程序并返回响应对象

参数
返回

包装从中获取的返回值 default() 或为该异常类型注册的处理程序。

sanic.log模块

sanic.请求模块

class sanic.request.File(type, body, name)

基类:tuple

property body

字段编号1的别名

property name

字段编号2的别名

property type

字段编号0的别名

class sanic.request.Request(url_bytes, headers, version, method, transport, app)

基类:dict

HTTP请求的属性,如URL、头等。

app
property args

解析方法 query_string 使用 urllib.parse.parse_qs . 此方法用于 args 财产。如果需要更改默认参数,可以直接使用。:param keep_blank_values:指示中是否有空值的标志

编码查询的百分比应视为空字符串。一个真值表示空格应保留为空字符串。默认的false值表示忽略空白值,并将其视为不包括在内。

参数
  • strict_parsing (bool) -- 指示如何处理分析错误的标志。如果为false(默认值),则默认忽略错误。如果为true,则错误会引发ValueError异常。

  • encoding (str) -- 指定如何将百分比编码序列解码为Unicode字符(bytes.decode()方法接受)。

  • errors (str) -- 指定如何将百分比编码序列解码为Unicode字符(bytes.decode()方法接受)。

返回

RequestParameters

body
body_finish()
body_init()
body_push(data)
property content_type
property cookies
endpoint
property files
property form
get_args(keep_blank_values: bool = False, strict_parsing: bool = False, encoding: str = 'utf-8', errors: str = 'replace') → sanic.request.RequestParameters

解析方法 query_string 使用 urllib.parse.parse_qs . 此方法用于 args 财产。如果需要更改默认参数,可以直接使用。:param keep_blank_values:指示中是否有空值的标志

编码查询的百分比应视为空字符串。一个真值表示空格应保留为空字符串。默认的false值表示忽略空白值,并将其视为不包括在内。

参数
  • strict_parsing (bool) -- 指示如何处理分析错误的标志。如果为false(默认值),则默认忽略错误。如果为true,则错误会引发ValueError异常。

  • encoding (str) -- 指定如何将百分比编码序列解码为Unicode字符(bytes.decode()方法接受)。

  • errors (str) -- 指定如何将百分比编码序列解码为Unicode字符(bytes.decode()方法接受)。

返回

RequestParameters

get_query_args(keep_blank_values: bool = False, strict_parsing: bool = False, encoding: str = 'utf-8', errors: str = 'replace') → list

解析方法 query_string 使用 urllib.parse.parse_qsl . 此方法用于 query_args 财产。如果需要更改默认参数,可以直接使用。:param keep_blank_values:指示中是否有空值的标志

编码查询的百分比应视为空字符串。一个真值表示空格应保留为空字符串。默认的false值表示忽略空白值,并将其视为不包括在内。

参数
  • strict_parsing (bool) -- 指示如何处理分析错误的标志。如果为false(默认值),则默认忽略错误。如果为true,则错误会引发ValueError异常。

  • encoding (str) -- 指定如何将百分比编码序列解码为Unicode字符(bytes.decode()方法接受)。

  • errors (str) -- 指定如何将百分比编码序列解码为Unicode字符(bytes.decode()方法接受)。

返回

列表

headers
property host
返回

头中指定的主机可能包含端口号。

property ip
返回

套接字的对等IP

property json
load_json(loads=<built-in function loads>)
property match_info

解析路由后返回匹配信息

method
parsed_args
parsed_files
parsed_form
parsed_json
parsed_not_grouped_args
property path
property port
返回

套接字的对等端口

property query_args

解析方法 query_string 使用 urllib.parse.parse_qsl . 此方法用于 query_args 财产。如果需要更改默认参数,可以直接使用。:param keep_blank_values:指示中是否有空值的标志

编码查询的百分比应视为空字符串。一个真值表示空格应保留为空字符串。默认的false值表示忽略空白值,并将其视为不包括在内。

参数
  • strict_parsing (bool) -- 指示如何处理分析错误的标志。如果为false(默认值),则默认忽略错误。如果为true,则错误会引发ValueError异常。

  • encoding (str) -- 指定如何将百分比编码序列解码为Unicode字符(bytes.decode()方法接受)。

  • errors (str) -- 指定如何将百分比编码序列解码为Unicode字符(bytes.decode()方法接受)。

返回

列表

property query_string
property raw_args
raw_url
property remote_addr

尝试基于x-forwarded-for或x-real-ip返回原始客户端IP。如果HTTP头不可用或不受信任,则返回空字符串。

返回

原始客户端IP。

property scheme

尝试获取请求方案。按以下顺序寻找价值: x-forwarded-proto 页眉, x-scheme Header,Sanic应用程序本身。

返回

HTTP协议 |https| ws wss或头文件给出的任意值。

返回类型

str

property server_name

尝试按以下顺序获取服务器的主机名: config.SERVER_NAMEx-forwarded-host 页眉, Request.host()

返回

没有端口号的服务器名称

返回类型

str

property server_port

尝试按以下顺序获取服务器端口: x-forwarded-port 页眉, Request.host() ,传输层套接字使用的实际端口。:返回:服务器端口:rtype:int

property socket
stream
property token

尝试返回auth头标记。

返回

与请求相关的令牌

transport
uri_template
property url
url_for(view_name, **kwargs)

等同于 sanic.Sanic.url_for() ,但自动确定 scheme and netloc base on the request. Since this method is aiming to generate correct schema & netloc, `_ 暗示为“external”。

参数

kwargs -- 采用与中相同的参数 sanic.Sanic.url_for()

返回

给定视图的绝对URL

返回类型

str

version
class sanic.request.RequestParameters

基类:dict

托管一个以列表为值的dict,其中get返回列表的第一个值,get list返回整个shebang

get(name, default=None)

返回第一个值,默认值或实际值

getlist(name, default=None)

返回整个列表

class sanic.request.StreamBuffer(buffer_size=100)

基类:object

is_full()
sanic.request.parse_multipart_form(body, boundary)

解析请求体并返回字段和文件

参数
  • body -- 字节请求正文

  • boundary -- 字节多部分边界

返回

字段(请求参数)、文件(请求参数)

sanic.response模块

class sanic.response.BaseHTTPResponse

基类:object

property cookies
class sanic.response.HTTPResponse(body=None, status=200, headers=None, content_type='text/plain', body_bytes=b'')

基类:sanic.response.BaseHTTPResponse

body
content_type
property cookies
headers
output(version='1.1', keep_alive=False, keep_alive_timeout=None)
status
class sanic.response.StreamingHTTPResponse(streaming_fn, status=200, headers=None, content_type='text/plain', chunked=True)

基类:sanic.response.BaseHTTPResponse

chunked
content_type
get_headers(version='1.1', keep_alive=False, keep_alive_timeout=None)
headers
protocol
status
streaming_fn
sanic.response.html(body, status=200, headers=None)

返回具有HTML格式的正文的响应对象。

参数
  • body -- 要编码的响应数据。

  • status -- 响应代码。

  • headers -- 自定义标题。

sanic.response.json(body, status=200, headers=None, content_type='application/json', dumps=<built-in function dumps>, **kwargs)

返回主体为JSON格式的响应对象。

参数
  • body -- 要序列化的响应数据。

  • status -- 响应代码。

  • headers -- 自定义标题。

  • kwargs -- 传递给JSON编码器的其余参数。

sanic.response.raw(body, status=200, headers=None, content_type='application/octet-stream')

返回不编码正文的响应对象。

参数
  • body -- 响应数据。

  • status -- 响应代码。

  • headers -- 自定义标题。

  • content_type -- 响应的内容类型(字符串)。

sanic.response.redirect(to, headers=None, status=302, content_type='text/html; charset=utf-8')

中止执行并导致302重定向(默认情况下)。

参数
  • to -- 要重定向到的路径或完全限定的URL

  • headers -- 要包含在新请求中的头的可选dict

  • status -- 新请求的状态代码(int),默认为302

  • content_type -- 响应的内容类型(字符串)

返回

重定向响应

sanic.response.stream(streaming_fn, status=200, headers=None, content_type='text/plain; charset=utf-8', chunked=True)

接受连体衣 streaming_fn 可用于将块写入流响应。返回A StreamingHTTPResponse .

示例用法:

@app.route("/")
async def index(request):
    async def streaming_fn(response):
        await response.write('foo')
        await response.write('bar')

    return stream(streaming_fn, content_type='text/plain')
参数
  • streaming_fn -- 协同程序接受响应并将内容写入该响应。

  • mime_type -- 特定的mime_类型。

  • headers -- 自定义标题。

  • chunked -- 启用或禁用分块传输编码

sanic.response.text(body, status=200, headers=None, content_type='text/plain; charset=utf-8')

返回正文为文本格式的响应对象。

参数
  • body -- 要编码的响应数据。

  • status -- 响应代码。

  • headers -- 自定义标题。

  • content_type -- 响应的内容类型(字符串)

sanic.路由器模块

class sanic.router.Parameter(name, cast)

基类:tuple

property cast

字段编号1的别名

property name

字段编号0的别名

exception sanic.router.ParameterNameConflicts

基类:Exception

class sanic.router.Route(handler, methods, pattern, parameters, name, uri)

基类:tuple

property handler

字段编号0的别名

property methods

字段编号1的别名

property name

字段编号4的别名

property parameters

字段编号3的别名

property pattern

字段编号2的别名

property uri

字段5的别名

exception sanic.router.RouteDoesNotExist

基类:Exception

exception sanic.router.RouteExists

基类:Exception

class sanic.router.Router

基类:object

路由器支持带参数和方法检查的基本路由

用途:

@sanic.route('/my/url/<my_param>', methods=['GET', 'POST', ...])
def my_route(request, my_param):
    do stuff...

@sanic.route('/my/url/<my_param:my_type>', methods['GET', 'POST', ...])
def my_route_with_type(request, my_param: my_type):
    do stuff...

参数将作为关键字参数传递给请求处理函数。提供的参数也可以通过将:type附加到<parameter>来具有类型。给定的参数必须能够类型化。如果未提供类型,则应提供字符串。正则表达式也可以作为类型传入。为函数提供的参数将始终是一个字符串,与类型无关。

add(uri, methods, handler, host=None, strict_slashes=False, version=None, name=None)

将处理程序添加到路由列表

参数
  • uri -- 匹配路径

  • methods -- 接受方法名称的序列。如果没有提供,则允许使用任何方法

  • handler -- 请求处理程序函数。执行时,它应该提供一个响应对象。

  • strict_slashes -- 严格到尾随斜线

  • version -- 路线或蓝图的当前版本。更多详细信息,请参阅文档。

返回

没有什么

static check_dynamic_route_exists(pattern, routes_to_check, parameters)

根据URL模式和参数的比较,检查所提供的路由列表中是否存在URL模式。

参数
  • pattern -- URL参数模式

  • routes_to_check -- 动态路由列表,可哈希路由或不可哈希路由。

  • parameters -- 名单 Parameter 项目

返回

如果存在匹配路由,则为索引和路由的元组;其他-1表示索引,无表示路由

find_route_by_view_name

根据指定的视图名称在路由器中查找路由。

参数
  • view_name -- 要搜索的视图名称字符串

  • kwargs -- 附加参数,通常用于静态文件

返回

包含(uri,route)的元组

get(request)

根据请求的URL获取请求处理程序,或引发错误

参数

request -- 请求对象

返回

处理程序、参数、关键字参数

get_supported_methods(url)

获取URL和可选主机的支持方法列表。

参数

url -- URL字符串(包括主机)

返回

支持方法的冻结集

is_stream_handler(request)

请求的处理程序是否为流。:param请求:请求对象:返回:bool

parameter_pattern = re.compile('<(.+?)>')
classmethod parse_parameter_string(parameter_string)

将参数字符串解析为其组成名称、类型和模式

例如::

parse_parameter_string('<param_one:[A-z]>')` ->
    ('param_one', str, '[A-z]')
参数

parameter_string -- 解析字符串

返回

包含的元组(参数_name、参数_type、参数_pattern)

remove(uri, clean_cache=True, host=None)
routes_always_check = None
routes_dynamic = None
routes_static = None
sanic.router.url_hash(url)

sanic.server模块

class sanic.server.HttpProtocol(*, loop, app, request_handler, error_handler, signal=<sanic.server.Signal object>, connections=None, request_timeout=60, response_timeout=60, keep_alive_timeout=5, request_max_size=None, request_buffer_queue_size=100, request_class=None, access_log=True, keep_alive=True, is_request_stream=False, router=None, state=None, debug=False, **kwargs)

基类:asyncio.protocols.Protocol

此类提供SANIC框架的基本HTTP实现。

access_log
app
bail_out(message, from_error=False)

如果传输管道关闭,并且SANIC应用程序在向传输管道写入数据时遇到错误,我们会记录错误并提供适当的详细信息。

参数
  • message (str) -- 要显示的错误消息

  • from_error (bool) -- 如果在处理异常情况时调用了纾困。

返回

没有

cleanup()

当使用keepalive特性时调用此函数,它将重置连接,以便能够处理在同一连接上接收另一个请求。

close()

强制关闭连接。

close_if_idle()

如果没有发送或接收请求,请关闭连接

返回

布尔值-关闭时为真,保持打开时为假

connection_lost(exc)

当连接丢失或关闭时调用。

参数是一个异常对象或无(后者意味着接收到一个常规的EOF,或者连接被中止或关闭)。

connection_made(transport)

在建立连接时调用。

参数是表示管道连接的传输。要接收数据,请等待data_received()调用。当连接关闭时,将调用连接丢失()。

connections
data_received(data)

当接收到某些数据时调用。

参数是一个字节对象。

error_handler
execute_request_handler()

调用由 sanic.app.Sanic.handle_request() 方法

返回

没有

expect_handler()

Expect头的处理程序。

headers
is_request_stream
property keep_alive

检查连接是否需要根据附加到 _keep_alive 属性, Signal.stoppedHttpProtocol.parser.should_keep_alive()

返回

True 如果要保持连接活动 False 其他的

keep_alive_timeout
keep_alive_timeout_callback()

检查自上次响应以来经过的时间是否超过了我们配置的最大保持活动超时值,如果超过,请关闭传输管道,让响应编写器处理错误。

返回

没有

log_response(response)

提供了帮助器方法,以便在 HttpProtocol.access_log 启用。

参数

response (sanic.response.HTTPResponse or sanic.response.StreamingHTTPResponse) -- 为当前请求生成的响应

返回

没有

loop
on_body(body)
on_header(name, value)
on_headers_complete()
on_message_complete()
on_url(url)
parser
pause_writing()

当传输的缓冲区超过高水位线时调用。

pause和resume调用是成对的——当缓冲区严格超过高位标记时(即使后续写入会使缓冲区大小增加更多),调用pause_writing()一次,当缓冲区大小达到低位标记时,调用resume_writing()一次。

请注意,如果缓冲区大小等于高位标记,则不会调用pause_writing()——必须严格执行。相反,当缓冲区大小等于或小于低水位线时,将调用resume_writing()。这些结束条件对于确保当任何一个标记为零时事情按预期进行都很重要。

注意:这是唯一一个没有通过eventloop.call_Soon()调用的协议回调——如果是,它在最需要的时候不会有任何效果(当应用在调用pause_writing()之前一直在写而不屈服)。

request
request_buffer_queue_size
request_class
request_handler
request_max_size
request_timeout
request_timeout_callback()
response_timeout
response_timeout_callback()
resume_writing()

当传输的缓冲区低于低水位线时调用。

有关详细信息,请参阅pause_writing()。

router
signal
state
transport
url
write_error(exception)
write_response(response)

将响应内容同步写入传输。

class sanic.server.Signal

基类:object

stopped = False
sanic.server.serve(host, port, app, request_handler, error_handler, before_start=None, after_start=None, before_stop=None, after_stop=None, debug=False, request_timeout=60, response_timeout=60, keep_alive_timeout=5, ssl=None, sock=None, request_max_size=None, request_buffer_queue_size=100, reuse_port=False, loop=None, protocol=<class 'sanic.server.HttpProtocol'>, backlog=100, register_sys_signals=True, run_multiple=False, run_async=False, connections=None, signal=<sanic.server.Signal object>, request_class=None, access_log=True, keep_alive=True, is_request_stream=False, router=None, websocket_max_size=None, websocket_max_queue=None, websocket_read_limit=65536, websocket_write_limit=65536, state=None, graceful_shutdown_timeout=15.0, asyncio_server_kwargs=None)

在单个进程上启动异步HTTP服务器。

参数
  • host -- 主机地址

  • port -- 端口到主机上

  • request_handler -- 带有中间件的SANIC请求处理程序

  • error_handler -- 带有中间件的SANIC错误处理程序

  • before_start -- 要在服务器开始侦听之前执行的函数。采取论点 app 实例和 loop

  • after_start -- 服务器开始侦听后要执行的函数。接受参数 app 实例和 loop

  • before_stop -- 在执行停止信号之前接收到停止信号时要执行的功能。采取论点 app 实例和 loop

  • after_stop -- 在收到停止信号后执行的功能。采取论点 app 实例和 loop

  • debug -- 启用调试输出(减慢服务器速度)

  • request_timeout -- 秒秒时间

  • response_timeout -- 秒秒时间

  • keep_alive_timeout -- 秒秒时间

  • ssl -- SSLContext

  • sock -- 服务器接受连接的套接字

  • request_max_size -- 字节大小, None 无限制

  • reuse_port -- True 对于多个工人

  • loop -- 异步兼容事件循环

  • protocol -- Asyncio协议类的子类

  • request_class -- 请求类使用

  • access_log -- 禁用/启用访问日志

  • websocket_max_size -- 强制传入消息的最大大小(字节)。

  • websocket_max_queue -- 设置保存传入消息的队列的最大长度。

  • websocket_read_limit -- 为输入字节设置缓冲区的上限,下限是上限的一半。

  • websocket_write_limit -- 为输出字节设置缓冲区的上限,下限是上限的四分之一。

  • is_request_stream -- 禁用/启用request.stream

  • request_buffer_queue_size -- 流请求缓冲区队列大小

  • router -- 路由器对象

  • graceful_shutdown_timeout -- 强制关闭非空闲连接需要多长时间

  • asyncio_server_kwargs -- asyncio/uvloop create_server方法的键值参数

返回

没有什么

sanic.server.serve_multiple(server_settings, workers)

同时启动多个服务器进程。在中断和终止信号时停止,并在完成时排出连接。

参数
  • server_settings -- 要传递给serve函数的kw参数

  • workers -- 要启动的工人数

  • stop_event -- 如果提供,用作停止信号

返回

sanic.server.trigger_events(events, loop)

触发器事件回调(函数或异步)

参数
  • events -- 要执行的一个或多个同步或异步函数

  • loop -- 事件循环

静态模块

sanic.static.register(app, uri, file_or_directory, pattern, use_modified_since, use_content_range, stream_large_files, name='static', host=None, strict_slashes=None, content_type=None)

通过向路由器添加路由并注册处理程序,向SANIC注册静态目录处理程序。

参数
  • app -- Sanic

  • file_or_directory -- 提供服务的文件或目录路径

  • uri -- 提供服务的URL

  • pattern -- 用于匹配URL中文件的正则表达式

  • use_modified_since -- 如果为真,则发送文件修改时间,如果浏览器与服务器匹配,则返回“未修改”。

  • use_content_range -- 如果为真,则处理范围请求的头并发送请求的文件部分

  • stream_large_files -- 如果为真,则使用文件流()处理程序而不是文件()处理程序发送文件。如果这是一个整数,则表示要切换到文件流()的阈值大小。

  • name -- 用于URL的用户定义名称

  • content_type -- 标题的用户定义内容类型

sanic.测试模块

class sanic.testing.SanicASGIAdapter(app, suppress_exceptions: bool = False)

基类:requests_async.asgi.ASGIAdapter

class sanic.testing.SanicASGITestClient(app, base_url: str = 'http://mockserver', suppress_exceptions: bool = False)

基类:requests_async.asgi.ASGISession

merge_environment_settings(*args, **kwargs)

检查环境并将其与某些设置合并。

返回类型

dict

class sanic.testing.SanicTestClient(app, port=42101)

基类:object

delete(*args, **kwargs)
get(*args, **kwargs)
get_new_session()
head(*args, **kwargs)
options(*args, **kwargs)
patch(*args, **kwargs)
post(*args, **kwargs)
put(*args, **kwargs)
websocket(*args, **kwargs)
class sanic.testing.TestASGIApp

基类:sanic.asgi.ASGIApp

sanic.views模块

class sanic.views.CompositionView

基类:object

SANIC的简单方法函数映射视图。您可以为您想要支持的每个HTTP方法向方法(get、post、put、patch、delete)添加处理程序函数。

例如:

view=compositionview()视图。添加( [“得到”] ,lambda请求:text(“I am get method”))视图。添加( [“邮”、“放”] ,lambda请求:text(“我是post/put方法”))

等。

如果有人试图使用一个未实现的方法,将会有405个响应。

add(methods, handler, stream=False)
class sanic.views.HTTPMethodView

基类:object

SANIC视图的简单基于类的实现。您应该为您想要支持的每个HTTP方法实现类的方法(get、post、put、patch、delete)。

例如:

class DummyView(HTTPMethodView):
    def get(self, request, *args, **kwargs):
        return text('I am get method')
    def put(self, request, *args, **kwargs):
        return text('I am put method')

等。

如果有人试图使用一个未实现的方法,将会有405个响应。

如果需要任何URL参数,只需在方法定义中提到它们:

class DummyView(HTTPMethodView):
    def get(self, request, my_param_here, *args, **kwargs):
        return text('I am get method with %s' % my_param_here)
要将视图添加到路由中,可以使用
  1. app.add_route(dummyview.as_view(),'/')

  2. app.route(“/”)(dummyView.as_View())

要添加任何decorator,可以将其设置为decorators变量

classmethod as_view(*class_args, **class_kwargs)

用于路由系统的返回视图函数,该函数将请求发送到适当的处理程序方法。

decorators = []
dispatch_request(request, *args, **kwargs)
sanic.views.stream(func)

sanic.websocket模块

class sanic.websocket.WebSocketConnection(send: Callable[[MutableMapping[str, Any]], Awaitable[None]], receive: Callable[[], Awaitable[MutableMapping[str, Any]]])

基类:object

class sanic.websocket.WebSocketProtocol(*args, websocket_timeout=10, websocket_max_size=None, websocket_max_queue=None, websocket_read_limit=65536, websocket_write_limit=65536, **kwargs)

基类:sanic.server.HttpProtocol

access_log
app
connection_lost(exc)

当连接丢失或关闭时调用。

参数是一个异常对象或无(后者意味着接收到一个常规的EOF,或者连接被中止或关闭)。

connections
data_received(data)

当接收到某些数据时调用。

参数是一个字节对象。

error_handler
headers
is_request_stream
keep_alive_timeout
keep_alive_timeout_callback()

检查自上次响应以来经过的时间是否超过了我们配置的最大保持活动超时值,如果超过,请关闭传输管道,让响应编写器处理错误。

返回

没有

loop
parser
request
request_buffer_queue_size
request_class
request_handler
request_max_size
request_timeout
request_timeout_callback()
response_timeout
response_timeout_callback()
router
signal
state
transport
url
write_response(response)

将响应内容同步写入传输。

sanic.worker模块

模块内容

class sanic.Sanic(name=None, router=None, error_handler=None, load_env=True, request_class=None, strict_slashes=False, log_config=None, configure_logging=True)

基类:object

add_route(handler, uri, methods=frozenset({'GET'}), host=None, strict_slashes=None, version=None, name=None, stream=False)

将类实例或函数注册为应用程序URL路由的处理程序的帮助器方法。

参数
  • handler -- 函数或类实例

  • uri -- URL路径

  • methods -- 允许的方法列表或元组,如果使用httpmethodview,则会重写这些方法

  • host --

  • strict_slashes --

  • version --

  • name -- URL的用户定义路由名称

  • stream -- 布尔值,指定处理程序是否为流处理程序

返回

函数或类实例

add_task(task)

在循环开始后,安排任务稍后运行。与asyncio.secure-future不同的是,它也不会返回未来,实际的secure-future调用会延迟到服务器启动之前。

参数

task -- 未来、古鲁特或等待

add_websocket_route(handler, uri, host=None, strict_slashes=None, subprotocols=None, name=None)

将函数注册为WebSocket路由的帮助器方法。

参数
  • handler -- 可以处理WebSocket请求的类的可调用函数或实例

  • host -- 主机IP或FQDN详细信息

  • uri -- 将映射到WebSocket处理程序的URL路径

  • strict_slashes -- 如果API端点需要以“/”终止或不终止

  • subprotocols -- 用于WebSocket握手的子协议

  • name -- 为该URL分配的唯一名称,以便它可以与 url_for()

返回

反对者装饰者 websocket()

property asgi_client
blueprint(blueprint, **options)

在应用程序上注册蓝图。

参数
  • blueprint -- 蓝图对象或其(列表、元组)

  • options -- 带蓝图默认值的选项字典

返回

没有什么

converted_response_type(response)

未提供实现。

delete(uri, host=None, strict_slashes=None, version=None, name=None)

在下添加API URL DELETE HTTP 方法

参数
  • uri -- 要标记到的URL DELETE 方法 HTTP

  • host -- 要使用的服务的主机IP或FQDN

  • strict_slashes -- 指导 Sanic 检查请求URL是否需要使用 /

  • version -- API版本

  • name -- 可用于标识路由的唯一名称

返回

具有 route() 方法 的对象装饰器

enable_websocket(enable=True)

启用或禁用对WebSocket的支持。

如果将WebSocket路由添加到应用程序,则会自动启用WebSocket。

exception(*exceptions)

修饰要注册为异常处理程序的函数

参数

exceptions -- 例外

返回

装饰功能

get(uri, host=None, strict_slashes=None, version=None, name=None)

在下添加API URL GET HTTP 方法

参数
  • uri -- 要标记到的URL GET 方法 HTTP

  • host -- 要使用的服务的主机IP或FQDN

  • strict_slashes -- 指导 Sanic 检查请求URL是否需要使用 /

  • version -- API版本

  • name -- 可用于标识路由的唯一名称

返回

具有 route() 方法 的对象装饰器

head(uri, host=None, strict_slashes=None, version=None, name=None)
listener(event)

从修饰函数创建侦听器。

参数

event -- 要收听的事件

property loop

与asyncio.get_event_loop()同义。

仅在使用时支持 app.run 方法。

middleware(middleware_or_request)

装饰和注册在请求之前调用的中间件。可以调用为 @app.middleware@应用中间件(请求)

Param

中间件请求:用于标识正在注册的中间件类型的可选参数。

options(uri, host=None, strict_slashes=None, version=None, name=None)

在下添加API URL OPTIONS HTTP 方法

参数
  • uri -- 要标记到的URL OPTIONS 方法 HTTP

  • host -- 要使用的服务的主机IP或FQDN

  • strict_slashes -- 指导 Sanic 检查请求URL是否需要使用 /

  • version -- API版本

  • name -- 可用于标识路由的唯一名称

返回

具有 route() 方法 的对象装饰器

patch(uri, host=None, strict_slashes=None, stream=False, version=None, name=None)

在下添加API URL PATCH HTTP 方法

参数
  • uri -- 要标记到的URL PATCH 方法 HTTP

  • host -- 要使用的服务的主机IP或FQDN

  • strict_slashes -- 指导 Sanic 检查请求URL是否需要使用 /

  • version -- API版本

  • name -- 可用于标识路由的唯一名称

返回

具有 route() 方法 的对象装饰器

post(uri, host=None, strict_slashes=None, stream=False, version=None, name=None)

在下添加API URL POST HTTP 方法

参数
  • uri -- 要标记到的URL POST 方法 HTTP

  • host -- 要使用的服务的主机IP或FQDN

  • strict_slashes -- 指导 Sanic 检查请求URL是否需要使用 /

  • version -- API版本

  • name -- 可用于标识路由的唯一名称

返回

具有 route() 方法 的对象装饰器

put(uri, host=None, strict_slashes=None, stream=False, version=None, name=None)

在下添加API URL PUT HTTP 方法

参数
  • uri -- 要标记到的URL PUT 方法 HTTP

  • host -- 要使用的服务的主机IP或FQDN

  • strict_slashes -- 指导 Sanic 检查请求URL是否需要使用 /

  • version -- API版本

  • name -- 可用于标识路由的唯一名称

返回

具有 route() 方法 的对象装饰器

register_blueprint(*args, **kwargs)

为调用 blueprint() 方法

注解

在1.0中被弃用。使用 blueprint() 相反。

参数
  • args -- 蓝图对象或其(列表、元组)

  • kwargs -- 带蓝图默认值的选项字典

返回

没有

register_listener(listener, event)

注册给定事件的侦听器。

ARG:

listener:callable,即setup_db(app,loop)event:何时注册listener,即'before_server_start'

返回:侦听器

register_middleware(middleware, attach_to='request')

注册一个应用程序级中间件,该中间件将附加到此应用程序下注册的所有API URL。

此方法由 middleware() 在应用程序级别提供的装饰器。

参数
  • middleware -- 要附加到中间件的回调方法

  • attach_to -- 在中间件的生命周期中需要调用中间件的状态 HTTP请求 . 请求 -在处理请求之前调用 响应 -在返回响应之前调用

返回

装饰器方法

remove_route(uri, clean_cache=True, host=None)

此方法为应用程序用户提供了一种机制,通过该机制可以从 Sanic 对象

警告

删除路由在V19.06中已弃用,将从未来版本中删除。

参数
  • uri -- 要从应用程序中删除的URL路径

  • clean_cache -- 如果需要清理LRU路由缓存,则指示SANIC

  • host -- 特定于主机的IP地址或FQDN

返回

没有

route(uri, methods=frozenset({'GET'}), host=None, strict_slashes=None, stream=False, version=None, name=None)

修饰要注册为路由的函数

参数
  • uri -- URL路径

  • methods -- 允许的方法列表或元组

  • host --

  • strict_slashes --

  • stream --

  • version --

  • name -- URL的用户定义路由名称

返回

装饰功能

run(host: Optional[str] = None, port: Optional[int] = None, debug: bool = False, ssl: Union[dict, ssl.SSLContext, None] = None, sock: Optional[socket.socket] = None, workers: int = 1, protocol: Type[asyncio.protocols.Protocol] = None, backlog: int = 100, stop_event: Any = None, register_sys_signals: bool = True, access_log: Optional[bool] = None, **kwargs) → None

运行HTTP服务器并监听,直到键盘中断或终端信号。在终端上,在关闭之前排空连接。

参数
  • host (str) -- 主机地址

  • port (int) -- 端口到主机上

  • debug (bool) -- 启用调试输出(减慢服务器速度)

  • ssl -- sslcontext,或工作进程的ssl加密的证书和密钥的位置

:键入ssl:sslcontext或dict:param sock:socket,以便服务器接受来自以下对象的连接:type sock:socket:param workers:在遵守之前接收的进程数:type workers:int:param protocol:asyncio协议的子类:type protocol:type [协议] :param backlog:系统未接受的连接数。

在拒绝新连接之前允许

参数
  • stop_event (None) -- 停止应用程序前要触发的事件-已弃用

  • register_sys_signals (bool) -- 注册 SIG* 事件

  • access_log (bool) -- 允许写入访问日志(减慢服务器速度)

返回

没有什么

static(uri, file_or_directory, pattern='/?.+', use_modified_since=True, use_content_range=False, stream_large_files=False, name='static', host=None, strict_slashes=None, content_type=None)

注册根目录以从中提供文件。输入可以是文件或目录。此方法将使设置 Route 服务静态文件所必需的。

参数
  • uri -- 用于服务静态内容的URL路径

  • file_or_directory -- 包含静态文件的静态文件/目录的路径

  • pattern -- 识别有效静态文件的regex模式

  • use_modified_since -- 如果为真,则发送文件修改时间,如果浏览器与服务器匹配,则返回“未修改”。

  • use_content_range -- 如果为真,则处理范围请求的头并发送请求的文件部分

  • stream_large_files -- 如果为真,请使用 StreamingHTTPResponse.file_stream() 处理程序而不是 HTTPResponse.file() 用于发送文件的处理程序。如果这是一个整数,则表示要切换到的阈值大小 StreamingHTTPResponse.file_stream()

  • name -- 用于URL的用户定义名称

  • host -- 要使用的服务的主机IP或FQDN

  • strict_slashes -- 指导 Sanic 检查请求URL是否需要使用 /

  • content_type -- 标题的用户定义内容类型

返回

没有

stop()

这会杀死 Sanic

property test_client
url_for(view_name: str, **kwargs)

基于视图名称和提供的值生成URL。

为了构建URL,必须将所有请求参数作为关键字参数提供,并且每个参数必须通过指定参数类型的测试。如果不满足这些条件,a URLBuildError 将被抛出。

不是请求参数的关键字参数将包含在输出URL的查询字符串中。

参数
  • view_name -- 引用视图名称的字符串

  • **kwargs -- 用于生成请求参数和查询字符串参数的键和值。

返回

内置URL

产生:

URLBuildError

websocket(uri, host=None, strict_slashes=None, subprotocols=None, name=None)

修饰要注册为WebSocket路由的函数:param uri:url的路径:param host:host ip或fqdn详细信息:param strict_slashes:如果API端点需要终止

是否带有“/”

参数
  • subprotocols -- 具有支持的子协议的str的可选列表

  • name -- 为该URL分配的唯一名称,以便它可以与 url_for()

返回

装饰功能

class sanic.Blueprint(name, url_prefix=None, host=None, version=None, strict_slashes=None)

基类:object

add_route(handler, uri, methods=frozenset({'GET'}), host=None, strict_slashes=None, version=None, name=None, stream=False)

从函数创建蓝图路由。

参数
  • handler -- 用于处理URI请求的函数。接受带有视图类方法的函数或类实例。

  • uri -- 路由可访问的终结点。

  • methods -- 可接受的HTTP方法列表。

  • host -- 要使用的SANIC服务器的FQDN的IP地址。

  • strict_slashes -- 强制通过培训请求API URL /

  • version -- 蓝图版本

  • name -- URL的用户定义路由名称

  • stream -- 布尔值,指定处理程序是否为流处理程序

返回

函数或类实例

add_websocket_route(handler, uri, host=None, version=None, name=None)

从函数创建蓝图WebSocket路由。

参数
  • handler -- 用于处理URI请求的函数。接受带有视图类方法的函数或类实例。

  • uri -- 路由可访问的终结点。

  • host -- 要使用的SANIC服务器的FQDN的IP地址。

  • version -- 蓝图版本

  • name -- 用于标识WebSocket路由的唯一名称

返回

函数或类实例

delete(uri, host=None, strict_slashes=None, version=None, name=None)

在下添加API URL DELETE HTTP 方法

参数
  • uri -- 要标记到的URL DELETE 方法 HTTP

  • host -- 要使用的服务的主机IP或FQDN

  • strict_slashes -- 指导 sanic.app.Sanic 检查请求URL是否需要使用 /

  • version -- API版本

  • name -- 可用于标识路由的唯一名称

返回

具有 route() 方法 的对象装饰器

exception(*args, **kwargs)

此方法允许为有问题的当前蓝图创建全局异常处理程序。

参数
  • args -- 处理程序要捕获的python异常列表

  • kwargs -- 要传递给异常处理程序的其他可选参数

:返回修饰方法以处理任何

在此蓝图下注册的路线。

get(uri, host=None, strict_slashes=None, version=None, name=None)

在下添加API URL GET HTTP 方法

参数
  • uri -- 要标记到的URL GET 方法 HTTP

  • host -- 要使用的服务的主机IP或FQDN

  • strict_slashes -- 指导 sanic.app.Sanic 检查请求URL是否需要使用 /

  • version -- API版本

  • name -- 可用于标识路由的唯一名称

返回

具有 route() 方法 的对象装饰器

static group(*blueprints, url_prefix='')

创建一个蓝图列表,可以选择在通用URL前缀下对其进行分组。

参数
  • blueprints -- 要注册为组的蓝图

  • url_prefix -- 所有子前缀的URL路由

head(uri, host=None, strict_slashes=None, version=None, name=None)

在下添加API URL HEAD HTTP 方法

参数
  • uri -- 要标记到的URL HEAD 方法 HTTP

  • host -- 要使用的服务的主机IP或FQDN

  • strict_slashes -- 指导 sanic.app.Sanic 检查请求URL是否需要使用 /

  • version -- API版本

  • name -- 可用于标识路由的唯一名称

返回

具有 route() 方法 的对象装饰器

listener(event)

从修饰函数创建侦听器。

参数

event -- 要收听的事件。

middleware(*args, **kwargs)

从修饰函数创建蓝图中间件。

参数
  • args -- 调用中间件时要使用的位置参数

  • kwargs -- 可用于中间件的可选关键字参数。

options(uri, host=None, strict_slashes=None, version=None, name=None)

在下添加API URL OPTIONS HTTP 方法

参数
  • uri -- 要标记到的URL OPTIONS 方法 HTTP

  • host -- 要使用的服务的主机IP或FQDN

  • strict_slashes -- 指导 sanic.app.Sanic 检查请求URL是否需要使用 /

  • version -- API版本

  • name -- 可用于标识路由的唯一名称

返回

具有 route() 方法 的对象装饰器

patch(uri, host=None, strict_slashes=None, stream=False, version=None, name=None)

在下添加API URL PATCH HTTP 方法

参数
  • uri -- 要标记到的URL PATCH 方法 HTTP

  • host -- 要使用的服务的主机IP或FQDN

  • strict_slashes -- 指导 sanic.app.Sanic 检查请求URL是否需要使用 /

  • version -- API版本

  • name -- 可用于标识路由的唯一名称

返回

具有 route() 方法 的对象装饰器

post(uri, host=None, strict_slashes=None, stream=False, version=None, name=None)

在下添加API URL POST HTTP 方法

参数
  • uri -- 要标记到的URL POST 方法 HTTP

  • host -- 要使用的服务的主机IP或FQDN

  • strict_slashes -- 指导 sanic.app.Sanic 检查请求URL是否需要使用 /

  • version -- API版本

  • name -- 可用于标识路由的唯一名称

返回

具有 route() 方法 的对象装饰器

put(uri, host=None, strict_slashes=None, stream=False, version=None, name=None)

在下添加API URL PUT HTTP 方法

参数
  • uri -- 要标记到的URL PUT 方法 HTTP

  • host -- 要使用的服务的主机IP或FQDN

  • strict_slashes -- 指导 sanic.app.Sanic 检查请求URL是否需要使用 /

  • version -- API版本

  • name -- 可用于标识路由的唯一名称

返回

具有 route() 方法 的对象装饰器

register(app, options)

将蓝图注册到sanic应用程序。

参数
  • app -- 实例 sanic.app.Sanic

  • options -- 将蓝图注册到应用程序时要使用的选项。 url_prefix -覆盖蓝图前缀的URL前缀

route(uri, methods=frozenset({'GET'}), host=None, strict_slashes=None, stream=False, version=None, name=None)

从修饰函数创建蓝图路由。

参数
  • uri -- 路由可访问的终结点。

  • methods -- 可接受的HTTP方法列表。

  • host -- 要使用的SANIC服务器的FQDN的IP地址。

  • strict_slashes -- 强制通过培训请求API URL /

  • stream -- 如果路由应该提供流支持

  • version -- 蓝图版本

  • name -- 用于标识路由的唯一名称

:返回一个修饰方法,调用该方法时将返回一个对象

类型的 FutureRoute

static(uri, file_or_directory, *args, **kwargs)

从修饰函数创建蓝图静态路由。

参数
  • uri -- 路由可访问的终结点。

  • file_or_directory -- 静态资产。

websocket(uri, host=None, strict_slashes=None, version=None, name=None)

从修饰函数创建蓝图WebSocket路由。

参数
  • uri -- 路由可访问的终结点。

  • host -- 要使用的SANIC服务器的FQDN的IP地址。

  • strict_slashes -- 强制通过培训请求API URL /

  • version -- 蓝图版本

  • name -- 用于标识WebSocket路由的唯一名称