前言
程序收到请求后,会根据URL来寻找相应的视图函数,随后由其生成页面发送回给客户端。其中,不同的URL对应着不同的视图函数,这就存在一个映射关系。而处理这个映射关系的功能就叫做路由。路由的实现分为两部分:
1. 生成URL映射关系
2. 根据请求匹配正确的视图函数
本文将围绕这两个部分进行分析。
生成URL映射关系
在Bottle的示例程序中,我们使用@app.route修饰器来将地址'/hello'映射到视图函数hello:
1 @app.route('/hello')2 def hello():3 return 'Hello World!'
下面以'/hello'为例子来分析app.route的代码。
1 def route(self, path=None, method='GET', callback=None, name=None, 2 apply=None, skip=None, **config): 3 """ 4 :param callback: An optional shortcut to avoid the decorator 5 syntax. ``route(..., callback=func)`` equals ``route(...)(func)`` 6 """ 7 if callable(path): path, callback = None,&nbs