前言
程序收到請求后,會根據URL來尋找相應的視圖函數,隨后由其生成頁面發(fā)送回給客戶端。其中,不同的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