好吧,这看起来应该很基本,但我就是不能让它发挥作用。我收到一个404错误,说找不到资源,尽管我被引导到正确的地址,www.url.com/sea?例如,对于帆船运动,s='1'。我有一个具有不同查询参数的链接列表,我希望用python代码对它们进行不同的处理。我正在使用googleappengine和python和jinja2模板系统。在
这是我的HTML:
<h3><a href="/" class="center-it">Quick Navigation</a></h3>
<div class="span1">
<div class="span1">
<h4><a href="/sea">Sea</a></h4>
<ul>
<li><a href="/sea?s='1'">Sailing</a></li>
<li><a href="/sea?s='2'">Diving</a></li>
<li><a href="/sea?s='3'">Surfing</a></li>
<li><a href="/sea?s='4'">Kite Boarding</a></li>
<li><a href="/sea?s='5'">Kayaking</a></li>
</ul>
</div>
这是Python:
^{pr2}$更新: 问题其实不是代码问题,而是我的URL处理问题。这是正确的:
app = webapp2.WSGIApplication([('/', MainPage),
(r'/sea', Sea)]
404错误的出现不是因为页面中的任何错误,而是因为您的路由或您的应用程序yaml文件。如果您使用的是webapp2,您只需要定义一个具有url
r'/air'
的路由就可以了。(例如webapp2.Route(r'/sea/', handler=Sea)
顺便说一句,在get请求中不使用查询字符串,您可以将这些字符串作为route kwargs放入,并做一些更好的事情,例如(语法是
<KEYWORDNAME:REGULAREXPRESSION>
当没有给出关键字名称时(如<:/?>
),它只匹配regex,而不传递任何内容给您)然后您可以将URL更改为,例如:
^{pr2}$您需要做的唯一其他更改是在处理程序函数中。它需要接受夸克。(因此,您只需稍微更改一下get请求即可):
这将大大简化您的代码,并使其更加灵活。此外,如果您的站点不经常更新,您可以做一些缓存,使查询更加快速,等等
相关问题 更多 >
编程相关推荐