webapp2 路由失败

1 投票
2 回答
863 浏览
提问于 2025-04-17 08:04

我正在用 Python 和 webapp2 在 app-engine 上搭建我的新网站。

我在定义我网站里的网址(URI)时遇到了困难。

我想要的结果是:

http://www.example.com/
http://www.example.com/products/
http://www.example.com/products/table

我原以为这是一件简单的事情,但显然对我来说并不是。

当我尝试加载像这样的链接时,我总是遇到 404 错误:

http://www.example.com/products/chair/

我哪里出错了呢?

app = webapp2.WSGIApplication([
webapp2.Route('/', MainPage),
webapp2.Route('/products/', handler=MainProductsHandler),
webapp2.Route('/products/(\w+)/', handler=ProductHandler)
],debug=True)

2 个回答

1

你可以用尖括号把正则表达式包起来,这样你的第一种方法就能奏效了:

app = webapp2.WSGIApplication([
webapp2.Route('/', MainPage),
webapp2.Route('/products/', handler=MainProductsHandler),
webapp2.Route('/products/<id:(\w+)>/', handler=ProductHandler)
],debug=True)

别忘了在处理函数的获取方法中加上参数id(或者你选择的其他名字,用来匹配正则表达式),否则它会因为有意外的参数而报错。

1

好的,我解决了这个问题。

app = webapp2.WSGIApplication([('/', MainPage), ('/product/.*', MainPage)], debug=True)

我觉得我在使用 webapp2.Route 方法的时候遇到了问题。

不过还是谢谢你们。

撰写回答