在使用Python 3.6和Tornado 5.1編寫HTTP服務(wù)器時(shí),處理URL參數(shù)是一個(gè)常見需求。本文將介紹如何有效處理URL鏈接中`?`后面的鍵值對(duì)參數(shù),而不是自行編寫正則表達(dá)式匹配,而是利用T
在使用Python 3.6和Tornado 5.1編寫HTTP服務(wù)器時(shí),處理URL參數(shù)是一個(gè)常見需求。本文將介紹如何有效處理URL鏈接中`?`后面的鍵值對(duì)參數(shù),而不是自行編寫正則表達(dá)式匹配,而是利用Tornado自帶的函數(shù)來(lái)實(shí)現(xiàn)。
不需要自己編寫正則表達(dá)式
在編寫基于Tornado的服務(wù)器代碼時(shí),并不需要額外的變化,稍后我們將展示如何支持URL參數(shù)的訪問(wèn)。首先要在`start`頁(yè)面中處理URL參數(shù)。
使用_argument獲取URL參數(shù)
在`RequestHandler`的`get`成員方法中,可以通過(guò)`_argument`方法獲取URL參數(shù)。需要注意的是,該方法返回的類型是字符串(str),帶有Unicode編碼。
get_argument方法的參數(shù)設(shè)置
`get_argument`方法接受兩個(gè)參數(shù),第一個(gè)是URL參數(shù)名,第二個(gè)是默認(rèn)值。若給定了默認(rèn)值,則用戶在`.../start`后面不需要手動(dòng)添加參數(shù)。如果沒(méi)有設(shè)置默認(rèn)值且用戶未在URL中添加參數(shù),則會(huì)出現(xiàn)錯(cuò)誤。
`start`頁(yè)面的HTML代碼示例
以下是`start`頁(yè)面的HTML代碼示例,其中`{{count}}`將由Tornado動(dòng)態(tài)填充(通過(guò)render函數(shù))。
```html
Start Page
Welcome to the Start Page!
Count: {{count}}
```
在瀏覽器中測(cè)試
在Firefox瀏覽器中,如果直接訪問(wèn)而不附加URL參數(shù),將會(huì)顯示默認(rèn)值為10。若添加了參數(shù),則會(huì)使用該參數(shù)進(jìn)行顯示。
錯(cuò)誤處理與提示
若未設(shè)置`count`的默認(rèn)參數(shù)且用戶未在URL中添加參數(shù),則將收到400 Bad Request錯(cuò)誤提示,這是因?yàn)槿鄙俦匾膮?shù)。
通過(guò)以上最佳實(shí)踐,你可以更好地利用Python Tornado處理單個(gè)URL參數(shù),提升Web應(yīng)用程序的靈活性和用戶體驗(yàn)。