默认的application是init,如果不存在init,则运行examples;
默认的controller是default
默认的function 是index
当controller为static的时候,web2py将其解析为static文件下的文件
例如:
http://127.0.0.1:8000/a/c/f/x/y/z?p=1&q=2
解析后变量为:
request.args=['x', 'y', 'z']
request.vars={'p':1, 'q':2}
request.application='a'
request.controller='c'
request.function='f'
解析流程:
- 解析cookies
- 准备好执行函数的环境
- 初始化对象:request, response, cache
- 打开已存在的进程或新的进程,根据cookies结果不同
- 执行model,经测试,按数字字母顺序依次执行
- 执行controller中对应的函数
- 如果返回dict类型,则执行对应的view中.htm文件
- 如果成功,则提交所有打开的事务
- 保存进程
- 返回HTTP response
注意:
View并看不到controller,它只能看到model和function返回的dict