RoutesMiddleware将请求应声到相应WSGI程序,它将路由匹配结果存到environ环境变量中去。
[python] view plaincopyprint?
from routes.middleware import RoutesMiddleware
app = RoutesMiddleware(wsgi_app, map) # ``map`` is a routes.Mapper.
map调用match匹配URL,并设置WSGI环境变量
[python] view plaincopyprint?
environ['wsgiorg.routing_args'] = ((url, match))
environ['routes.route'] = route
environ['routes.url'] = url
route为匹配到的路由,url为一个URLGenerator对象,match为匹配所得条目。
app为一个RoutesMiddleware对象,内部重载__call__(def __call__(self, environ, start_response))仍为一个wsgi应用。
wsgi_app为一个wsgi程序,RoutesMiddleware将环境变量(environ)设置好后,调用wsgi_app进行后续处理。
下面是一个实际的输出:
[plain] view plaincopyprint?
wsgiorg.routing_args = (<routes.util.URLGenerator object at 0x0287AFB0>,
{'action': u'index', 'controller': <__main__.Resourse instance at 0x02876E40>})
routes.route = <routes.route.Route object at 0x02871F10>
routes.url = <routes.util.URLGenerator object at 0x0287AFB0>
[python] view plaincopyprint?
from routes.middleware import RoutesMiddleware
app = RoutesMiddleware(wsgi_app, map) # ``map`` is a routes.Mapper.
map调用match匹配URL,并设置WSGI环境变量
[python] view plaincopyprint?
environ['wsgiorg.routing_args'] = ((url, match))
environ['routes.route'] = route
environ['routes.url'] = url
route为匹配到的路由,url为一个URLGenerator对象,match为匹配所得条目。
app为一个RoutesMiddleware对象,内部重载__call__(def __call__(self, environ, start_response))仍为一个wsgi应用。
wsgi_app为一个wsgi程序,RoutesMiddleware将环境变量(environ)设置好后,调用wsgi_app进行后续处理。
下面是一个实际的输出:
[plain] view plaincopyprint?
wsgiorg.routing_args = (<routes.util.URLGenerator object at 0x0287AFB0>,
{'action': u'index', 'controller': <__main__.Resourse instance at 0x02876E40>})
routes.route = <routes.route.Route object at 0x02871F10>
routes.url = <routes.util.URLGenerator object at 0x0287AFB0>