Flask 中的 URL 路径有什么区别?
What difference between URL paths in Flask?
URL路径有什么区别:
@app.route('/projects')
@app.route('/projects/')
路由路径末尾的slash
是什么意思?在个案例中使用它?
如果我理解正确,它用于服务器文件的绝对和相对路径?对吗?
这叫做trailing slash。
一般trailing slash
,
https://www.google.com/example/ -> 这是一个目录。
- 首先,服务器检查目录是否存在。
- 其次,如果存在,服务器检查默认文件,例如
index.html
https://www.google.com/example -> 这是一个文件。
- 首先,服务器检查文件是否存在。
- 其次,如果没有,请检查具有该名称的目录。
因此,如果您在请求目录资源时指定尾部斜杠,页面响应速度会略有提高,因为您可以跳过文件检查。
在烧瓶中
@app.route('/projects')
- 呼叫
/projects/
-> return 404.
(Werkzeug 解释为明确的规则,因此它不匹配结尾的斜杠。)
- 呼叫
/projects
-> return 200
@app.route('/projects/')
- 呼叫
/projects/
-> return 200
- 呼叫
/projects
-> return 302
(如果 url 没有,Werkzeug 将重定向)
会有帮助。
URL路径有什么区别:
@app.route('/projects')
@app.route('/projects/')
路由路径末尾的slash
是什么意思?在个案例中使用它?
如果我理解正确,它用于服务器文件的绝对和相对路径?对吗?
这叫做trailing slash。
一般trailing slash
,
https://www.google.com/example/ -> 这是一个目录。
- 首先,服务器检查目录是否存在。
- 其次,如果存在,服务器检查默认文件,例如
index.html
https://www.google.com/example -> 这是一个文件。
- 首先,服务器检查文件是否存在。
- 其次,如果没有,请检查具有该名称的目录。
因此,如果您在请求目录资源时指定尾部斜杠,页面响应速度会略有提高,因为您可以跳过文件检查。
在烧瓶中
@app.route('/projects')
- 呼叫
/projects/
-> return 404.
(Werkzeug 解释为明确的规则,因此它不匹配结尾的斜杠。) - 呼叫
/projects
-> return 200
- 呼叫
@app.route('/projects/')
- 呼叫
/projects/
-> return 200 - 呼叫
/projects
-> return 302
(如果 url 没有,Werkzeug 将重定向)
- 呼叫