Skip to content

Flask - 路由

路由是将 URL(你在浏览器中输入的地址或 API 客户端请求的地址)映射到 Flask 应用程序中特定 Python 函数(用于处理这些 URL)的机制。这使你能为 Web 应用程序的不同部分创建清晰、易记的 URL。

在 Flask 中定义路由最常用的方式是使用 app.route() 装饰器。将此装饰器直接放在你想与特定 URL 规则关联的 Python 函数(通常称为 视图函数)上方。

from flask import Flask
app = Flask(__name__)
# 将 URL '/' 绑定到 index() 函数
@app.route('/')
def index():
return 'Welcome to the Home Page!'
# 将 URL '/hello' 绑定到 hello_world() 函数
@app.route('/hello')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run(debug=True)

在此示例中:

  • 在浏览器中访问 http://localhost:5000/ 将触发 index() 函数,显示 ‘Welcome to the Home Page!’。
  • 访问 http://localhost:5000/hello 将触发 hello_world() 函数,显示 ‘Hello, World!’。

或者,你可以使用 Flask 应用程序对象的 add_url_rule() 方法实现相同的结果。这对于典型的视图函数不太常用,但在某些高级场景或以不同方式组织路由时会很有用。

from flask import Flask
app = Flask(__name__)
def about_page():
return 'This is the About Page.'
# 相当于使用 @app.route('/about') 装饰器
app.add_url_rule('/about', 'about', about_page)
# 参数:URL 规则,端点名称(必须唯一),视图函数
if __name__ == '__main__':
app.run(debug=True)

在此,访问 http://localhost:5000/about 将执行 about_page 函数。add_url_rule() 的第二个参数 'about' 是 端点(endpoint) 名称。Flask 内部使用端点,它们在使用 url_for() 生成 URL 时尤其重要(将在另一节介绍)。使用 @app.route() 装饰器时,端点名称默认为视图函数的名称。

对于大多数应用程序,@app.route() 装饰器提供了一种更简洁、更易读的方式来定义你的 URL 路由。