一个有效的请求 URL 是否会在 web2py 中有一个 '.html' 扩展名?
Would a valid request URL ever have a '.html' extension in web2py?
web2py book's "Core" chapter 说:
web2py maps GET/POST requests of the form:
http://127.0.0.1:8000/a/c/f.html/x/y/z?p=1&q=2
to function f in controller "c.py" in application a,
但是我认为真正有效的 URL 不会有 .html
。事实上,在同一页的更下方,我们阅读了:
URLs are only allowed to contain alphanumeric characters, underscores, and slashes; the args may contain non-consecutive dots. Spaces are replaced by underscores before validation.
很明显 .html
不是 args
的一部分,但它里面有一个点。因此,示例 URL 与页面下方记录的有效 URL 相矛盾。
web2py 使用点之后的部分来呈现正确的视图。 a/c/f.html
和 a/c/f.json
都调用相同的函数(f
在 c.py
控制器中),但是前者会渲染 views/c/f.html
而后者 views/c/f.json
(如果存在,否则它将在本地主机中呈现 views/generic.json
或在生产中提高 404)。
注意扩展名可以省略,默认为.html
。此外,您可以在控制器中设置 response.view
以更改默认行为。
所以是的,有效的 URL 可能有扩展名。
希望对您有所帮助!
web2py book's "Core" chapter 说:
web2py maps GET/POST requests of the form:
http://127.0.0.1:8000/a/c/f.html/x/y/z?p=1&q=2
to function f in controller "c.py" in application a,
但是我认为真正有效的 URL 不会有 .html
。事实上,在同一页的更下方,我们阅读了:
URLs are only allowed to contain alphanumeric characters, underscores, and slashes; the args may contain non-consecutive dots. Spaces are replaced by underscores before validation.
很明显 .html
不是 args
的一部分,但它里面有一个点。因此,示例 URL 与页面下方记录的有效 URL 相矛盾。
web2py 使用点之后的部分来呈现正确的视图。 a/c/f.html
和 a/c/f.json
都调用相同的函数(f
在 c.py
控制器中),但是前者会渲染 views/c/f.html
而后者 views/c/f.json
(如果存在,否则它将在本地主机中呈现 views/generic.json
或在生产中提高 404)。
注意扩展名可以省略,默认为.html
。此外,您可以在控制器中设置 response.view
以更改默认行为。
所以是的,有效的 URL 可能有扩展名。
希望对您有所帮助!