前言

程序收到請(qǐng)求后,會(huì)根據(jù)URL來尋找相應(yīng)的視圖函數(shù),隨后由其生成頁面發(fā)送回給客戶端。其中,不同的URL對(duì)應(yīng)著不同的視圖函數(shù),這就存在一個(gè)映射關(guān)系。而處理這個(gè)映射關(guān)系的功能就叫做路由。路由的實(shí)現(xiàn)分為兩部分:
1. 生成URL映射關(guān)系
2. 根據(jù)請(qǐng)求匹配正確的視圖函數(shù)
本文將圍繞這兩個(gè)部分進(jìn)行分析。

生成URL映射關(guān)系

在Bottle的示例程序中,我們使用@app.route修飾器來將地址'/hello'映射到視圖函數(shù)hello:

1 @app.route('/hello')2 def hello():3     return 'Hello World!'

下面以'/hello'為例子來分析app.route的代碼。

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營銷培訓(xùn)

 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