2017-08-04 61 views
2

讓我們假設我有以下webapp2路線。瞭解webapp2路線

webapp2.Route('/api/users/register/verify/<user_id:\d+>/<signup_token:.+>', users.VerificationHandler, name='verification') 

我知道第一部分是URL,然後是請求處理程序的名字,但我不明白的名字=「驗證」的目的。有人能解釋爲什麼webapp2路由中使用了名字嗎?

此外,uri_for()函數的目的是什麼?我們爲什麼用它?

回答

2

以編程方式webapp2是類,而Route是在類中定義的函數。

webapp2的不過,它擴展了Web應用程序的模型,以提供額外功能的路由機制:

  • URI建築:註冊路線可以內置在需要的時候,避免在應用硬編碼的URI代碼和模板。

  • 關鍵字參數:處理程序可以從匹配的URI接收關鍵字參數。

  • 嵌套路由:路由可以擴展爲匹配多於請求路徑。我們將在下面看到一個路線類別,它也可以匹配 域名和子域名。

如:webapp2.Route('/api/users/register/verify/<user_id:\d+>/<signup_token:.+>', handler=HomeHandler, name='verification')

從你的榜樣,name='verification'

它是你的網址名稱...

在你的榜樣

您的網址是: '/api/users/register/verify/<user_id:\d+>/<signup_token:.+>' 你不能記住它的權利,所以名稱是我幫你用難忘的一個verification別名。

所以你的URL,/api/users/register/verify/<user_id:\d+>/<signup_token:.+> = verification

你的大

別名將轉化爲原始地址在運行時

接下來,uri_for()

正如我所說的,你指定的別名網址..所以你知道最短的別名。如果你想獲取URL從別名,你可以使用此功能,

print uri_for('verification') 

會給你,/api/users/register/verify/<user_id:\d+>/<signup_token:.+>

+0

所以我們可以說「名」是用來做長的URL短?這僅僅是爲了開發者而已? – HamidArrivy

+0

是的..它不會讓網址。它的喜歡別名...它不會顯示在地址欄..它會在運行時翻譯..短URL將分配在後端長.. python只知道.. ..它會翻譯一旦你執行 –

+0

感謝這個很好解釋的答案。 – HamidArrivy