import re import sys _URL_PLACEHOLDER_PATTERN = re.compile('<(.*?)>') def get_pipe(name): """通过 mod.ClassName 导入自定义的PipeHandler""" module_name, obj_name = name.rsplit('.', 1) __import__(module_name) module = sys.modules[module_name] obj = getattr(module, obj_name) return obj def extract_placeholders(url): """ >>> res = extract_placeholders("//resource//submit/") >>> assert set(res) == {"service_name", "resource_id"} :param url: request url name :return: list of placeholder name """ return _URL_PLACEHOLDER_PATTERN.findall(url) def replace_placeholder(url, placeholder_name, value): return url.replace('<{}>'.format(placeholder_name), str(value))