今天重点说下webpy的路由规则。
1
2
3
4
5
6
7
8
|
#这里声明了三条路由规则,它是一个tuple,由url匹配规则和处理类组成
#url匹配规则是用正则表达式书写的
#可以声明多条路由规则,每一条都是由url匹配规则和处理类组成
urls=(
'/','index',
'/user','user',
'/topic','topic'
)
|
既然url匹配规则是正则表达式那我们就可以灵活的写出各种表达式
1
2
3
4
5
6
7
|
urls=(
'/','index',
'/(user|member)','user', #匹配 http://example.com/user和http://example.com/member
'/topic/?','topic',#匹配 http://example.com/topic和http://example.com/topic/
'/blog/(\d+)','blog',#匹配 http://example.com/blog/123
'/news/(\d+)/(\w+)','news'#匹配 http://example.com/news/123/abc
)
|
正则表达式里的分组可以在后面的处理类中使用,例如
1
2
3
4
5
6
7
|
'/news/(\d+)','news'
#如果url为http://example.com/news/123456
class news:
#这里的id就是上面分组里匹配上的值(123456)
def GET(self,id):
return 'id:%s' % id
|
注意:url匹配只匹配url路径不包括参数,例如:
’/news/create?title=(.+)’
它不会匹配上http://example.com/news/create?title=hello