Flask 路由与视图函数绑定机制
Flask 路由与视图函数绑定机制
核心概念
在 Flask 框架中,路由(Route) 是连接 URL 路径与 Python 函数的桥梁,通过 @app.route()
装饰器实现这种绑定关系,使得当用户访问特定 URL 时,对应的函数会被自动调用。
工作原理
-
装饰器绑定
- 使用
@app.route('URL路径')
装饰器修饰函数 - 装饰器会在 Flask 应用初始化时,将函数与指定 URL 路径关联起来
- 内部维护一张"URL路径→函数"的映射表
- 使用
-
请求处理流程
用户访问 URL → Flask 解析路径 → 查找映射表 → 执行对应函数 → 返回结果给浏览器
代码示例
from flask import Flask
app = Flask(__name__)# 将根路径 '/' 与 hello_world() 函数绑定
@app.route('/')
def hello_world():return 'Hello World!'# 将 '/user' 路径与 show_user() 函数绑定
@app.route('/user')
def show_user():return 'This is user page'if __name__ == '__main__':app.run() # 启动服务器,开始监听请求
访问效果
访问的URL | 触发执行的函数 | 浏览器显示内容 |
---|---|---|
http://127.0.0.1:5000/ | hello_world() | Hello World! |
http://127.0.0.1:5000/user | show_user() | This is user page |
关键特点
- 无需显式调用:视图函数不需要手动调用,由 Flask 框架在收到对应请求时自动触发
- 灵活的路径配置:可通过装饰器为不同函数配置不同路径
- 开发便捷性:开发者只需关注"访问该路径时返回什么内容",无需处理底层请求解析逻辑
扩展知识
- 一个函数可以绑定多个 URL 路径
@app.route('/') @app.route('/home') def home():return 'Welcome to homepage'
- 支持动态 URL 路径(带参数)
@app.route('/user/<username>') def show_profile(username):return f'User: {username}'
通过这种机制,Flask 实现了 URL 路径与业务逻辑的解耦,让 Web 开发更加直观高效。