当前位置: 首页 > news >正文

Flask 路由与视图函数绑定机制

Flask 路由与视图函数绑定机制

核心概念

在 Flask 框架中,路由(Route) 是连接 URL 路径与 Python 函数的桥梁,通过 @app.route() 装饰器实现这种绑定关系,使得当用户访问特定 URL 时,对应的函数会被自动调用。

工作原理

  1. 装饰器绑定

    • 使用 @app.route('URL路径') 装饰器修饰函数
    • 装饰器会在 Flask 应用初始化时,将函数与指定 URL 路径关联起来
    • 内部维护一张"URL路径→函数"的映射表
  2. 请求处理流程

    用户访问 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/usershow_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 开发更加直观高效。

http://www.dtcms.com/a/338921.html

相关文章:

  • 正式签约 | OpenLoong 项目正式捐赠至开放原子开源基金会,成为全国首个具身智能方向孵化项目!
  • 【图像算法 - 18】慧眼辨良莠:基于深度学习与OpenCV的麦田杂草智能识别检测系统(附完整代码)
  • 哈希:两数之和
  • Mac(七)右键新建文件的救世主 iRightMouse
  • python将epub文件转pdf
  • UniApp 实现pdf上传和预览
  • 大模型级部署:从本地轻量化到云原生方案
  • 基于单片机智能密码锁/密码箱/门锁/门禁系统
  • Python爬虫实战:研究ICP-Checker,构建ICP 备案信息自动查询系统
  • PiscCode迅速集成YOLO-Pose 实现姿态关键点轨迹跟踪应用
  • 从繁琐到优雅:Java Lambda 表达式全解析与实战指南
  • 第1章 React组件开发基础
  • JxBrowser 8.10.0 版本发布啦!
  • iOS App 混淆工具实战,教育培训类 App 的安全保护方案
  • CTFshow系列——命令执行web34-37
  • RK3128增加usb调试模式,开放adb和root权限
  • leetcode 有效的括号
  • 西游记23:三藏不忘本,四圣试禅心;八戒挑行李;分工明确;
  • Java试题-选择题(11)
  • 从闲置到珍宝:旧物回收小程序系统重塑物品价值
  • dockerfile文件中crlf与lf换行符问题
  • 记录Webapi Excel 导出
  • 电影购票+票房预测系统 - 后端项目介绍(附源码)
  • Android Studio常用知识总结
  • HP Pavilion G6 笔记本使用ventoy启动安装Ubuntu 22.04 桌面版
  • Redission是什么
  • 低延迟、跨平台与可控性:直播SDK的模块化价值解析
  • 探访隐形冠军|安贝斯携手武汉科创协会x深钣协“湖北行”,溯源南海光电的创新密码
  • Qt个人通讯录项目开发教程 - 从零开始构建联系人管理系统
  • 【运维进阶】Ansible 角色管理