Web.py 架構學習筆記 - URL處理

來源:互聯網
上載者:User

標籤:inf   cti   路徑   code   解析   class   div   python   注意   

最近由於工作需要開始學習基於python的web應用程式框架web.py。為了方便學習,將學習心得逐日記下以便日後複習。

URL 範本:

web.py提供了一套url處理的模板,在python工程中,只需要將網頁結構配置為一個元組(tuple)即可。該元組在web.py中的解析模式為:url路徑對應處理url的類名。這裡,類名必須和service代碼中對應的類名一致。例如,

 1 urls = ( 2     "/tasks/?", "signin", 3     "/tasks/list", "listing", 4     "/tasks/post", "post", 5     "/tasks/chgpass", "chgpass", 6     "/tasks/act", "actions", 7     "/tasks/logout", "logout", 8     "/tasks/signup", "signup" 9 )10 11 class signin:12     def GET(self):13         pass

URL路徑匹配:

url路徑的配置不是固定的,可以通過在url路徑中嵌入Regex來靈活的擷取各種url結果。例如,“/taks/(test1|test2)”, “signin”將匹配“/task/test1”或者“/task/test2”。正則匹配方式可以通過下面的例子來理解:

在瀏覽器中顯示url為:http://localhost/myapp/greetings/hello?name=Joe,那麼在url元組中,路徑為/myapp/greetings/hello。web.py將自動在匹配是加入^和$以防匹配到不同的結果(/hello而非/hello/addnew)。當然,/hello/delete?name=(.+)也是不行的,因為在?後緊跟著一段query。具體url匹配方法可以訪問web.ctx。

通過url擷取變數:

在url中可以通過匹配模式獲得相應的變數,並將變數用於相應類的方法(get或post)中。例如,url配置為:"/users/list/(.+)", "list_users",list/後的部分將被抓取到當做變數記下來。在類中可以按如下方式使用:

1 class list_users:2     def GET(self, name):3         return "Listing info about user: {0}".format(name)

當然,可以傳入不止一個參量。特別要注意的是url query模式下(?後面的字串)可以通過web.input()方法直接擷取。

 

Web.py 架構學習筆記 - URL處理

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.