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
Esempio n. 2
0
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"])