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