了解 webapp2 路由

Understanding webapp2 routes

假设我有以下 webapp2 路由。

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

我知道第一部分是 URL,然后是请求处理程序的名称,但我不明白 name='verification' 的用途。有人可以解释为什么 name 在 webapp2 路由中使用吗?

另外,uri_for()函数的作用是什么?我们为什么要使用它?

编程上 webapp2 是 class 并且 Route 是在 class.

中定义的函数

webapp2只不过是一种扩展webapp模型以提供额外功能的路由机制:

  • URI 构建: 可以在需要时构建已注册的路由,避免应用代码和模板中的硬编码 URI。

  • 关键字参数: 处理程序可以从匹配的 URI 接收关键字参数。

  • 嵌套路由: 路由可以扩展匹配多个请求路径。我们将在下面看到一条路由 class 也可以匹配 域和子域。

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

根据你的例子,name='verification'

它是您 url...

的别名

在你的例子中,

你的 URL 是:'/api/users/register/verify/<user_id:\d+>/<signup_token:.+>' 你记不住,所以名字会帮助你给它取个好记的别名 verification.

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

别名将在运行时转换为原始 url

接下来,uri_for()

正如我所说,你为你的大URL分配了别名。所以你知道它的最短别名。如果你想从别名中检索 URL 你可以使用这个函数,

print uri_for('verification') 

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