Flask 中的 URL 路径有什么区别?

What difference between URL paths in Flask?

URL路径有什么区别:

@app.route('/projects')

@app.route('/projects/')

路由路径末尾的slash是什么意思?在个案例中使用它?

如果我理解正确,它用于服务器文件的绝对和相对路径?对吗?

这叫做trailing slash

一般trailing slash,

  1. https://www.google.com/example/ -> 这是一个目录。

    • 首先,服务器检查目录是否存在。
    • 其次,如果存在,服务器检查默认文件,例如index.html
  2. https://www.google.com/example -> 这是一个文件。

    • 首先,服务器检查文件是否存在。
    • 其次,如果没有,请检查具有该名称的目录。

因此,如果您在请求目录资源时指定尾部斜杠,页面响应速度会略有提高,因为您可以跳过文件检查。

在烧瓶中

  1. @app.route('/projects')

    • 呼叫 /projects/ -> return 404.
      (Werkzeug 解释为明确的规则,因此它不匹配结尾的斜杠。)
    • 呼叫 /projects -> return 200
  2. @app.route('/projects/')

    • 呼叫 /projects/ -> return 200
    • 呼叫 /projects -> return 302
      (如果 url 没有,Werkzeug 将重定向)

会有帮助。