gpt4 book ai didi

python - webapp2 的 get() 方法什么时候需要额外的参数?

转载 作者:太空宇宙 更新时间:2023-11-04 03:51:56 24 4
gpt4 key购买 nike

我刚刚开始使用 Google App Engine 和 webapp2 famework。通常,我们使用以下代码开始构建应用程序

class MainPage(webapp2.RequestHandler):
def get(self):
#do something

app = webapp2.WSGIApplication([('/blog',MainPage)])

现在有时我们像这样注册处理程序

app = webapp2.WSGIApplication([('/blog/(\d+)',MainPage)]

当我们请求相应的 URL 时,get() 方法必须像这样定义

def get(self,post_id):

post_id 是出现在我们请求的 URL 末尾的 ID。

现在我不明白什么时候 get() 方法在这种情况下接受像 post_id 这样的附加参数?我的意思是,所有正则表达式 (\d+) 表示,如果 URL 以数字结尾,则将其映射到 MainPage 处理程序。那么 webapp2 何时知道何时将参数/参数发送到 MainPage 处理程序的 get() 函数?

最佳答案

该模式作为正则表达式与 URL 匹配,模式中的方括号构成一个“捕获组”,这意味着与该部分模式匹配的 URL 部分被“捕获”。就目前而言,捕获组是匿名的,传递给处理程序的参数是按位置完成的(您不必将其称为 post_id )。将模式更改为 (?P<post_id>\d+)使其成为“命名”组,处理程序的参数将是关键字参数(参数的名称很重要)。

为了完整起见,如果您希望正则表达式中的一个组不被捕获(因此不作为参数传递),则将其指示为 (?:\d+)

关于python - webapp2 的 get() 方法什么时候需要额外的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20922566/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com