假设我有以下webapp2路由。
webapp2.Route('/api/users/register/verify/<user_id:\d+>/<signup_token:.+>', users.VerificationHandler, name='verification') 我知道第一部分是URL,然后是请求处理程序的名称,但我不明白name =‘验证’的目的。有人能解释一下为什么在webapp2路由中使用名字吗?
此外,uri_for()函数的目的是什么?我们为什么要用它?
发布于 2017-08-04 12:22:15
webapp2是类,Route是类内定义的函数。
webapp2只不过是一种路由机制,它扩展了webapp模型以提供其他特性:
Eg: 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
别名将在运行时中转换为原始url。
接下来是uri_for()
就像我说的,你为你的大URL指定了别名。所以你知道最短的别名。如果您想从别名中检索URL,可以使用此函数,
print uri_for('verification') 会给你的,/api/users/register/verify/<user_id:\d+>/<signup_token:.+>
https://stackoverflow.com/questions/45506524
复制相似问题