core.register --- 路由注册器

class core.register.ArgType

基类:object

包含uri可以用到的类型参数

Any = '(.+)'
Letter = '([A-Za-z]+)'
Number = '(\\d+)'
Param = '([^\\\\/]+)'
Word = '([\\w-]+)'
class core.register.RegisterMeta(what: str, bases=None, _dict=None)

基类:type

路由注册器元类

route_pool = {}
core.register.api_method(method)

api装饰的方法将函数定义为API类型请求方法,可以获取到任意param参数值 同时方法返回的对象值会自动写入到返回请求当中

举例说明:

@cross_domain()
@api_method
async def get(self):
    return {}
参数:method -- 异步http方法函数
返回:装饰包裹后的函数
core.register.create_router(prefix: str, use_uri: bool = False) → Callable[Union[List[str], str], List]

创键router函数,该函数用于包裹__urls,添加公用前缀

举例:

router = create_router("/api")

__urls = router(["/test"])
或者
__urls = [router("/test")]
参数:
  • prefix -- 公用url前缀
  • use_uri -- 是否使用URI函数解析路径
返回:

router函数

core.register.cross_domain(origin: str = '*', headers: str = '*', methods: str = 'GET, POST, PUT, DELETE, OPTIONS', max_age=600)

access为当前请求方法添加跨域属性

举例说明:

@cross_domain()
async def get(self):
    return {}
参数:
  • origin -- 允许的作用域
  • headers -- 允许的请求头
  • methods -- 允许的请求方法
  • max_age -- 最大非重复预请求时间
返回:

装饰包裹后的函数

core.register.uri(path: str, *args) → str

快捷的定义url注册,可以根据类型参数生成对应的正则匹配

使用方法:

__urls = [
    uri("/home/{Letter}"),
    "/home", "/index"
]

__urls = [
    uri("/home/{}", ArgType.Letter),
    "/home", "/index"
]
参数:
  • path -- 模板url路径
  • args -- 替换类型参数,ArgType的静态属性
返回:

渲染后的URL字符串