1
felinx 2013-05-06 17:56:55 +08:00
在前面再加一条
routes = [(r'/books', BookHandler)] |
2
felinx 2013-05-06 18:00:52 +08:00
变成这样的 routes = [(r'/books', BookHandler),(r'/books/(\d+)', BookHandler)]
|
3
bigdude OP @felinx 谢,自己搞了下,总结
在handler中要检查参数, page = page if page else 1 在routes中要添加 routes.extend((r'/books', BookHandler)) 这样访问 /books /books/ /books/1 都正常显示第一页内容 |
4
felinx 2013-05-06 18:10:22 +08:00
你的page=1这种默然参数的也可以的,不用page = page if page else 1
另外 /books /books/ 这两种url建议统一为一种,若带/的都自动跳到不带/的,即: /books/跳转到/books 反之亦然。 tornado.web.removeslash tornado.web.addslash 是做这个用的,统一处理的话可以参考下面prepare里面的_remove_slash: https://bitbucket.org/felinx/poweredsites/src/6040f8cf119ca530c9359275f3beaf63d5fc441d/poweredsites/libs/handler.py?at=default def prepare(self): self._prepare_context() self._remove_slash() |
5
bigdude OP @felinx
试了一下,添加了@tornado.web.removeslash,总是404,谷歌到了另外一个帖子http://www.v2ex.com/t/56486,原来是路由的正则不对, 将上面的正则 /book 改成 /books/?就行了,再次感谢! |