Werkzeug库的routing模块是用来解析url请求的,不同的url对应不同的视图函数,而routing模块的作用就是:对请求信息的URL进行解析,匹配到URL对应的视图函数,执行该函数以此生成一个响应信息。
Werkzeug库的 routing 模块中有以下几个部分:
- Rule类:路由url和视图函数的对应关系
在执行print(app.url_map)
后,在终端上会看到下面所示的代码,
表示:‘/’ 对应的函数是index,‘/static/’对应的存放目录是static。
Map([<Rule ‘/’ (GET, OPTIONS, HEAD) -> index>,
<Rule ‘/static/’ (GET, OPTIONS, HEAD) -> static>])
- Map类:可以比作是用来存储rule集合的容器;存储所有的URL规则和一些配置参数
Map([<Rule ‘/’ (GET, OPTIONS, HEAD) -> index>,
<Rule ‘/static/’ (GET, OPTIONS, HEAD) -> static>])
- BaseConverter的子类:服务于rule集合的,负责定义匹配规则。
- MapAdapter类:负责协调Rule做具体的匹配的工作,就是根据url寻找相应的视图函数