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.pswp.cn/pingmian/93627.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/93627.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/93627.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring 的 setter 注入可以解决某些类型的循环依赖问题

参考&#xff1a;https://blog.csdn.net/weixin_50055999/article/details/147493914?utm_sourceminiapp_weixin Setter 方法注入 (Setter Injection) 在类中提供一个 setter 方法&#xff0c;并在该方法上使用 Autowired、Resource 等注解。 代码示例 import org.springfr…

数据结构代码分享-5 链式栈

linkstack.c#include<stdio.h> #include<stdlib.h> #include"linkstack.h" //1.创建一个空的栈 void CreateEpLinkStack(linkstack_t **ptop) {*ptop NULL; } //2.入栈,ptop是传入的栈针的地址&#xff0c;data是入栈的数据 int pushLinkStack(linkstac…

数学建模Topsis法笔记

评价决策类-Topsis法学习笔记 问题的提出 生活中我们常常要进行评价&#xff0c;上一篇中的层次分析法&#xff0c;通过确定各指标的权重&#xff0c;来进行打分&#xff0c;但层次分析法决策层不能太多&#xff0c;而且构造判断矩阵相对主观。那有没有别的方法呢&#xff1f…

石英加速度计为何成为行业标杆?

在石油钻井、航空航天、工业自动化等领域&#xff0c;高精度、高可靠性的加速度测量至关重要。ER-QA-03F系列石英挠性加速度计凭借其卓越的性能和稳定的表现&#xff0c;成为静态与动态测试的理想选择。自2012年推出以来&#xff0c;该产品已交付数千台&#xff0c;并在石油钻井…

HP Pavilion G6 笔记本使用ventoy启动安装Ubuntu 22.04 桌面版

HP Pavilion G6 笔记本是很老的笔记本了&#xff0c;淘到一款&#xff0c;成色比较新&#xff0c;使用i5 3210 M cpu &#xff0c;内存是2G*2&#xff0c;正好手边有一条4G内存条&#xff0c;替换一条后扩充为6G内存&#xff0c;感觉可以再战10年&#xff01;&#xff08;当然6…

STM32G4 Park及反Park变换(二)实验

目录 一、STM32G4 Park及反Park变换(二)实验 1 Park及反Park变换 1.1 代码 1.2 上位机实验结果 附学习参考网址 欢迎大家有问题评论交流 (* ^ ω ^) 一、STM32G4 Park及反Park变换(二)实验 1 Park及反Park变换 本文介绍了基于STM32G4的Park及反Park变换实验过程。主要内容…

pgsql 如何查询今天范围内的数据(当天0点0分0秒 - 当天23点59分59秒....)

使用 CURRENT_DATE 函数CURRENT_DATE 返回当前日期&#xff08;不含时间部分&#xff09;。当它在查询中与 timestamp 字段比较时&#xff0c;会自动被视为当天的开始&#xff0c;即 YYYY-MM-DD 00:00:00。CURRENT_DATE INTERVAL 1 day 计算出第二天的开始时间&#xff0c;即 …

DRM驱动架构浅析-上(DRM基础概要与U-Boot阶段驱动解析)

一、背景 近期项目吃紧&#xff0c;接了不少调屏相关的需求&#xff0c;期间磕磕绊绊&#xff0c;但总算完成要求。回首过往&#xff0c;调试过多种屏幕&#xff0c;包括LVDS、EDP、MIPI、MI转EDP或是转LVDS、DP以及HDMI等常见屏。在Rockchip平台调外设也有段时间矣&#xff0…

idea中如何设置文件的编码格式

目录 一、全局与项目编码配置 二、新项目预配置 一、全局与项目编码配置 File --> Settings --> Editor --> File Encodings Global Encoding&#xff1a;设置为UTF-8&#xff0c;影响IDE界面及新建文件的默认编码。‌‌Project Encoding&#xff1a;选择UTF-8&am…

2025年5月架构设计师综合知识真题回顾,附参考答案、解析及所涉知识点(六)

本文主要回顾2025年上半年(2025-5-24)系统架构设计师考试上午综合知识科目的选择题,同时附带参考答案、解析和所涉知识点。 2025年5月架构设计师综合知识真题回顾,附参考答案、解析及所涉知识点(一) 2025年5月架构设计师综合知识真题回顾,附参考答案、解析及所涉知识点(…

Ubuntu22系统上源码部署LLamaFactory+微调模型 教程【亲测成功】

0.LLamaFactory LLaMA-Factory 是一个开源的低代码大模型训练与微调框架&#xff0c;旨在简化大规模语言模型&#xff08;LLM&#xff09;的微调、评估和部署流程&#xff0c;帮助开发者和研究人员更高效地定制和优化模型。 1.安装部署 1.1克隆仓库 git clone --depth 1 ht…

打靶日常-sql注入(手工+sqlmap)

小知识: 注入点:在哪里输入sgl指令中的参数 执行点:在那个页面拼接sql指令并发送给数据库执行 回显点:执行的结果显示在哪个页面 sqlmap知识点: 输出等级 -v3 范围0-6 默认1 一般3 考试3 测试等级 --level=1 范围…

绕过服务端文件上传检测:黑名单绕过技术与实战

绕过服务端文件上传检测&#xff1a;黑名单绕过技术与实战文件上传漏洞是Web安全中常见且危害极大的漏洞类型之一&#xff0c;而黑名单机制是最基础的防御手段。本文将深入探讨三种经典的黑名单绕过技术&#xff0c;并提供实战案例与防御方案。引言 文件上传功能是现代Web应用的…

在职老D渗透日记day21:sqli-labs靶场通关(第27a关)get联合注入 过滤select和union “闭合

5.27a.第27a关 get联合注入 过滤select和union "闭合function blacklist($id) { $id preg_replace(/[\/\*]/,"", $id); //strip out /* $id preg_replace(/[--]/,"", $id); //Strip out --. $id preg_replace(/[#]/,"", $id); //Strip …

Git#cherry-pick

场景 项目里有多个分支&#xff0c;在某个分支commit内容想要应用到当前分支 命令 git cherry-pick --helpgit cherry-pick commit-ish&#xff1a;某个其他分支的commit应用到当前所在分支 (默认自动提交)git cherry-pick -n commit-ish&#xff1a;–no-commit(不自动提交)&a…

极海APM32F107V6 gpio模拟串口

一、原理部分 之前用外设都是直接用的硬件自带的库&#xff0c;虽然以前有学过原理和时序&#xff0c;但是因为工作其实也很少会有需要gpio模拟串口的情况&#xff0c;但总会有串口用完&#xff0c;但是需要一个类似打印串口的情况。今天也是开整&#xff0c;然后用硬件的库对…

【数据可视化-94】2025 亚洲杯总决赛数据可视化分析:澳大利亚队 vs 中国队

&#x1f9d1; 博主简介&#xff1a;曾任某智慧城市类企业算法总监&#xff0c;目前在美国市场的物流公司从事高级算法工程师一职&#xff0c;深耕人工智能领域&#xff0c;精通python数据挖掘、可视化、机器学习等&#xff0c;发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…

链表基本运算详解:查找、插入、删除及特殊链表

在上一篇文章中&#xff0c;我们介绍了线性表的基本概念和顺序存储。本文将深入探讨单链表的基本运算&#xff0c;并介绍循环链表和双向链表这两种特殊的链表结构&#xff0c;帮助读者全面掌握链表的操作技巧。 文章目录1.单链表基本运算链表的查找操作按序号查找按值查找链表的…

8.19作业

1.聊天室1.1服务器#include <myhead.h> #define SER_PORT 8888 #define SER_IP "192.168.174.128"struct msg {char type;char usrname[20];char msgtext[1024]; };int main(int argc, const char *argv[]) {int sfd socket(AF_INET,SOCK_STREAM,0);if (sfd-1…

95、23种设计模式之建造者模式(4/23)

建造者模式&#xff08;Builder Pattern&#xff09;是23种经典设计模式中的创建型模式之一&#xff0c;其核心思想是将复杂对象的构建过程与其表示分离&#xff0c;使得同样的构建流程可以生成不同结构或配置的对象。以下从定义、结构、应用场景、优缺点及代码示例展开分析&am…