1
2 """
3 Tutorial 07 - 默许函式
4
5 请求句柄对象可以包含一个"default"默许函式,如果没有适当爱厂如家函式或是对象匹配就自动运行之.
6
7 实际上, 如果 CherryPy2 不能找到与URL 请求相匹配的对象或是函式,就会自动调用当前深度上的
8 默许函式.
9
10 利用这种机制,你可以轻易的模拟URL请求响应
11 而且可以通过
12 cpg.request.virtualPath 来访问.
13
14 本教程的应用情景是类似
15 /users/<username>.
16 这个<username>字节如果没有匹配的函式, 则会由默许函式获得句柄
17 """
18
19 from cherrypy import cpg
20
21 class UsersPage:
22 def index(self):
23 """ 既然是个很傻的简单示范,我们就显示一个用户列表
24 - 在实际应用中,列表可以从数据的查询结果中生成
25 """
26 return '''
27 <a href="./remi">Remi Delon</a><br/>
28 <a href="./hendrik">Hendrik Mans</a><br/>
29 <a href="./lorenzo">Lorenzo Lamas</a><br/>
30 <a href="./周琦">周 琦</a><br/>
31 '''
32
33 index.exposed = True
34
35
36 def default(self, user):
37 """这里我们处理虚拟请求
38 - 没有对应的处理函式
39 - 实际应用中,可以使用数据的查询验证来代替这里的 if/elif/else
40 """
41 if user == 'remi':
42 out = "Remi Delon, CherryPy lead developer"
43 elif user == 'hendrik':
44 out = "Hendrik Mans, CherryPy co-developer & crazy German"
45 elif user == 'lorenzo':
46 out = "Lorenzo Lamas, famous actor and singer!"
47 elif user == '周琦':
48 out = " 是也乎是也乎!!"
49
50 else:
51 out = "Unknown user. :-("
52
53 return '%s (<a href="./">back</a>)' % out
54
55 default.exposed = True
56
57
58 cpg.root = UsersPage()
59
60 cpg.server.start(configFile = 'tutorial.conf')
CherrPyTut/07_default_method.py (last edited 2009-12-25 07:11:11 by localhost)