路由¶
Sanic_Routing型号¶
-
class
sanic_routing.route.
Route
(router, raw_path, name, handler, methods, requirements=None, strict=False, unquote=False, static=False, regex=False, overloaded=False)¶ -
parse_parameter_string
(parameter_string)¶ 将参数字符串解析为其组成名称、类型和模式
例如::
parse_parameter_string('<param_one:[A-z]>')` -> ('param_one', '[A-z]', <class 'str'>, '[A-z]')
- 参数:
parameter_string (str) -- 解析字符串
- 返回:
包含的元组(参数_name、参数_type、参数_pattern)
-
ctx
¶ 用于路由元数据的容器
-
extra
¶ 一个用于路由应用数据的容器
-
handler
¶ 路由处理程序
-
methods
¶ 该路由可以处理的HTTP方法
-
name
¶ 生成的或在路径定义中定义的路径名称
-
property
raw_path
¶ 路由定义中的原始路径
-
regex
¶ 路径是否需要正则表达式求值
-
requirements
¶ 非路径路由要求的表示
-
static
¶ 什么时候
True
,该路由不具有任何动态路径参数
-
strict
¶ 路线是否要配以严格评估
-
unquote
¶ 如果(例如)怀疑路径包含非URL友好字符,则匹配后是否应取消引号
-
-
class
sanic_routing.group.
RouteGroup
(*routes)¶ -
merge
(group, overwrite=False, append=False)¶ 合并的目的是将具有相同路径但单独声明的路由分组。换句话说,要对这些进行分组:
@app.get("/path/to") def handler1(...): ... @app.post("/path/to") def handler2(...): ...
另一个主要目的是寻找冲突并提出
RouteExists
重复路由是指:1.它们具有相同的路径和任何重叠的方法;以及2.如果它们有要求,则它们是相同的
- 参数:
group (RouteGroup) -- 传入路由组
overwrite (bool, optional) -- 是否允许以其他方式重复的路由组覆盖现有的
True
不会在重复项上引发异常,默认为FALSEappend (bool, optional) -- 是否允许以其他方式重复的路由组将其路由附加到现有路由组,默认为FALSE
- 抛出:
RouteExists -- 在存在重复项时引发
- 返回类型:
None
-
regex
: bool¶ 路径是否需要正则表达式求值
-
strict
: bool¶ 路线是否要配以严格评估
-
unquote
: bool¶ 如果(例如)怀疑路径包含非URL友好字符,则匹配后是否应取消引号
-
sanic.router¶
-
class
sanic.router.
Router
(delimiter='/', exception=<class 'sanic_routing.exceptions.NotFound'>, method_handler_exception=<class 'sanic_routing.exceptions.NoMethod'>, route_class=<class 'sanic_routing.route.Route'>, group_class=<class 'sanic_routing.group.RouteGroup'>, stacking=False, cascade_not_found=False)¶ 基类:
sanic_routing.router.BaseRouter
负责路由的路由器实施 Request 对象绑定到相应的处理程序。
-
add
(uri, methods, handler, host=None, strict_slashes=False, stream=False, ignore_body=False, version=None, name=None, unquote=False, static=False, version_prefix='/v', overwrite=False, error_format=None)¶ 向路由器添加处理程序
- 参数:
URI(Str):路由路径。方法(可迭代 [str] ):应该附加的HTTP方法的类型,
示例: ["GET", "POST", "OPTIONS"] 。
Handler(RouteHandler):要执行的同步或异步函数。主机(可选 [str] ,可选):路由应在其上的主机。默认为无。STRICT_SLASS(bool,可选):是否应用严格斜杠。默认为False。Stream(bool,可选):是否流式处理响应。默认为False。IGNORE_BODY(bool,可选):是否应该读取传入的请求正文。
默认为False。
版本(联合 [str, float, int] ,可选):URI的版本修饰符。默认为无。名称(可选 [str] ,可选):路线的标识名称。默认为无。
- 返回:
路线:路线对象。
- 参数:
uri (str) --
methods (Iterable[str]) --
handler (Callable[[..], Coroutine[Any, Any, Optional[sanic.response.types.HTTPResponse, None]]]) --
host (Optional[Union[str, Iterable[str]]]) --
strict_slashes (bool) --
stream (bool) --
ignore_body (bool) --
version (Optional[Union[int, float, str]]) --
name (Optional[str, None]) --
unquote (bool) --
static (bool) --
version_prefix (str) --
overwrite (bool) --
error_format (Optional[str, None]) --
- 返回类型:
Union[sanic_routing.route.Route, List[sanic_routing.route.Route]]
-
finalize
(*args, **kwargs)¶ 最终确定路由器。
- 产生:
如果路由包含以“__”开头的参数名称且不在Allowed_Labels中,则抛出
- 返回类型:
None
-
find_route_by_view_name
(view_name, name=None)¶ 根据指定的视图名称在路由器中查找路由。
- 参数:
View_name(Str):要搜索名称的视图的名称(可选 [str] ,可选):路线的名称。默认为 None 。
- 返回:
任选 [Route] :路由对象
- 参数:
view_name (str) --
name (Optional[str, None]) --
- 返回类型:
Optional[sanic_routing.route.Route, None]
-
get
(path, method, host)¶ 检索一个 Route 对象,该对象包含有关如何处理给定请求的响应的详细信息
- 参数:
request (Request) -- 传入的请求对象
path (str) --
method (str) --
host (Optional[str, None]) --
- 返回:
处理请求和返回正确响应所需的详细信息
- 返回类型:
Tuple[ Route, RouteHandler, Dict[str, Any]]
- 参数:
路径(Str):路由方法的路径(Str):路由主机的HTTP方法(可选 [str] ):路由的主机
- 产生:
NotFound:如果未找到该路由,则为MethodNotAllowed:如果该方法不允许用于该路由
- 返回:
元组 [Route, RouteHandler, Dict[str, Any] ]:路由、处理程序和匹配信息
-
property
routes_all
¶ 返回路由器中的所有路由。
- 返回:
迪克特 [Tuple[str, ...] ,路线]:路线词典
-
property
routes_dynamic
¶ 返回路由器中的所有动态路由。
动态路由是包含路径的路由(_D) parameters._
- 返回:
迪克特 [Tuple[str, ...] ,路线]:路线词典
-
property
routes_regex
¶ 返回路由器中的所有正则表达式路由。
_regex路由是包含带有regex表达式的路径参数的路由,或者需要regex来 resolve._
- 返回:
迪克特 [Tuple[str, ...] ,路线]:路线词典
-
property
routes_static
¶ 返回路由器中的所有静态路由。
_在此上下文中,“静态”路由不是指 app.static() 方法。相反,它们指的是不包含任何路径的路由 parameters._
- 返回:
迪克特 [Tuple[str, ...] ,路线]:路线词典
-