def _generate_route_mapping_rules(route_mapping): from werkzeug.routing import Map, Rule # Throwaway variable to take advantage of the routing library routing_map = Map() # Turn the route mapping into a mapping of Rules rules_map = {} for key in route_mapping: rules_map[key] = [] for value in route_mapping[key]: rule = Rule(value) rule.bind(routing_map) rules_map[key].append(rule) return rules_map
from werkzeug.routing import Rule, Map """ ?P<xx> 用来为后面匹配到的取名 """ _rule_re = re.compile( r""" (?P<static>[^<]*) # static rule data < (?: (?P<converter>[a-zA-Z_][a-zA-Z0-9_]*) # converter name (?:\((?P<args>.*?)\))? # converter arguments \: # variable delimiter )? (?P<variable>[a-zA-Z_][a-zA-Z0-9_]*) # variable name > """, re.VERBOSE, ) map_a = Map() rule_a = Rule("/ds/<ds>/", endpoint="ds") rule_a.bind(map_a) print(rule_a._regex) print(rule_a.match(u"/ds/d")) # print(re.compile(r"\\s").match("\s")) # print(_rule_re.match("/dsd/<sd>").end()) # regex_for_name = re.compile(r"(?P<number>\d+)") # res = regex_for_name.match("123") # print(res.groupdict()["number"])