2017-08-04 60 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