码迷,mamicode.com
首页 > Web开发 > 详细

Web.py 框架学习笔记 - URL处理

时间:2017-08-01 16:35:04      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:inf   cti   路径   code   解析   class   div   python   注意   

最近由于工作需要开始学习基于python的web应用框架web.py。为了方便学习,将学习心得逐日记下以便日后复习。

URL 模板:

web.py提供了一套url处理的模板,在python工程中,只需要将网页结构配置为一个元组(tuple)即可。该元组在web.py中的解析模式为:url路径对应处理url的类名。这里,类名必须和service代码中对应的类名一致。例如,

 1 urls = (
 2     "/tasks/?", "signin",
 3     "/tasks/list", "listing",
 4     "/tasks/post", "post",
 5     "/tasks/chgpass", "chgpass",
 6     "/tasks/act", "actions",
 7     "/tasks/logout", "logout",
 8     "/tasks/signup", "signup"
 9 )
10 
11 class signin:
12     def GET(self):
13         pass

URL路径匹配:

url路径的配置不是固定的,可以通过在url路径中嵌入正则表达式来灵活的获取各种url结果。例如,“/taks/(test1|test2)”, “signin”将匹配“/task/test1”或者“/task/test2”。正则匹配方式可以通过下面的例子来理解:

在浏览器中显示url为:http://localhost/myapp/greetings/hello?name=Joe,那么在url元组中,路径为/myapp/greetings/hello。web.py将自动在匹配是加入^和$以防匹配到不同的结果(/hello而非/hello/addnew)。当然,/hello/delete?name=(.+)也是不行的,因为在?后紧跟着一段query。具体url匹配方法可以访问web.ctx

通过url获取变量:

在url中可以通过匹配模式获得相应的变量,并将变量用于相应类的方法(get或post)中。例如,url配置为:"/users/list/(.+)", "list_users",list/后的部分将被抓取到当做变量记下来。在类中可以按如下方式使用:

1 class list_users:
2     def GET(self, name):
3         return "Listing info about user: {0}".format(name)

当然,可以传入不止一个参量。特别要注意的是url query模式下(?后面的字符串)可以通过web.input()方法直接获取。

 

Web.py 框架学习笔记 - URL处理

标签:inf   cti   路径   code   解析   class   div   python   注意   

原文地址:http://www.cnblogs.com/jl-cnblogs-163/p/7269027.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!