web2py book's "Core" chapter说:
web2py映射格式的GET / POST请求:
http://127.0.0.1:8000/a/c/f.html/x/y/z?p=1&q=2
在应用程序a中的控制器“c.py”中运行f,
但是,我认为真正有效的网址中不会包含.html
。事实上,在我们读到的同一页面上:
网址只允许包含字母数字字符,下划线和斜杠; args可能包含非连续点。在验证之前,空格将被下划线替换。
很明显.html
不是args
的一部分,但它有一个点。因此,示例URL与页面下方记录的有效URL相矛盾。
答案 0 :(得分:2)
web2py使用点后面的部分来呈现正确的视图。 a/c/f.html
和a/c/f.json
都会在f
控制器中调用相同的函数(c.py
),但前者将呈现views/c/f.html
而后者views/c/f.json
(如果存在,否则它将在localhost中呈现views/generic.json
或在生产中引发404)。
请注意,可以省略扩展名,默认值为.html
。此外,您可以在控制器中设置response.view
以更改默认行为。
是的,有效的网址可能有扩展名。
希望它有所帮助!