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