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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web.py 框架学习笔记 - URL处理相关的知识,希望对你有一定的参考价值。

最近由于工作需要开始学习基于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处理的主要内容,如果未能解决你的问题,请参考以下文章

Web.py 框架学习笔记 - ctx

Python学习笔记七:web.py

js-权威指南学习笔记14

Python web 框架:web.py

Flask框架怎么样,比起Web.py都有哪些不同

python学习-反射