news 2026/9/2 8:29:22

Python Flask 开发 - Flask 路径参数类型(string、int、float、path、uuid)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python Flask 开发 - Flask 路径参数类型(string、int、float、path、uuid)

查看路径参数类型

forconverter_name,converter_classinapp.url_map.converters.items():print(f"{converter_name}:{converter_class}")
# 输出结果 default: <class 'werkzeug.routing.converters.UnicodeConverter'> string: <class 'werkzeug.routing.converters.UnicodeConverter'> any: <class 'werkzeug.routing.converters.AnyConverter'> path: <class 'werkzeug.routing.converters.PathConverter'> int: <class 'werkzeug.routing.converters.IntegerConverter'> float: <class 'werkzeug.routing.converters.FloatConverter'> uuid: <class 'werkzeug.routing.converters.UUIDConverter'>

一、string

@app.route('/user/<string:username>')defshow_string(username):returnf'type: string, value:{username}, python_type:{type(username).__name__}'
  1. 测试/user/john_doe
# 输出结果 type: string, value: john_doe, python_type: str
  1. 测试/user/123
# 输出结果 type: string, value: 123, python_type: str
  1. 测试/user/john%20doe
# 输出结果 type: string, value: john doe, python_type: str

二、int

@app.route('/article/<int:article_id>')defshow_int(article_id):returnf'type: int, value:{article_id}, python_type:{type(article_id).__name__}'
  1. 测试/article/42
# 输出结果 type: int, value: 42, python_type: int
  1. 测试/article/0
# 输出结果 type: int, value: 0, python_type: int
  1. 测试/article/-100
# 输出结果 Not Found
  1. 测试/article/3.14
# 输出结果 Not Found
  1. 测试/article/abc
# 输出结果 Not Found
  1. 测试/article/10abc
# 输出结果 Not Found

三、float

@app.route('/price/<float:price>')defshow_float(price):returnf'type: float, value:{price}, python_type:{type(price).__name__}'
  1. 测试/price/19.99
# 输出结果 type: float, value: 19.99, python_type: float
  1. 测试/price/-5.5
# 输出结果 Not Found
  1. 测试/price/100
# 输出结果 Not Found
  1. 测试/price/100.0
# 输出结果 type: float, value: 100.0, python_type: float
  1. 测试/price/.5
# 输出结果 Not Found
  1. 测试/price/3.1415926
# 输出结果 type: float, value: 3.1415926, python_type: float
  1. 测试/price/10,5
# 输出结果 Not Found
  1. 测试/price/10k
# 输出结果 Not Found
  1. 测试/price/abc
# 输出结果 Not Found

四、path

1、演示
@app.route('/path/<path:filepath>')defshow_path(filepath):returnf'type: path, value:{filepath}, python_type:{type(filepath).__name__}'
  1. 测试/path/docs
# 输出结果 type: path, value: docs, python_type: str
  1. 测试/path/docs/api
# 输出结果 type: path, value: docs/api, python_type: str
  1. 测试/path/docs/api/v1
# 输出结果 type: path, value: docs/api/v1, python_type: str
  1. 测试/path/static/css/style.css
# 输出结果 type: path, value: static/css/style.css, python_type: str
  1. 测试/path/a/b/../d
# 输出结果 type: path, value: a/b/../d, python_type: str
2、string 处理路径类型的问题
@app.route('/path/<string:filepath>')defshow_path(filepath):returnf'type: string, value:{filepath}, python_type:{type(filepath).__name__}'
  1. 测试/path/docs
# 输出结果 type: string, value: docs, python_type: str
  1. 测试/path/docs/api
# 输出结果 Not Found
  1. 测试/path/docs/api/v1
# 输出结果 Not Found
  1. 测试/path/static/css/style.css
# 输出结果 Not Found
  1. 测试/path/a/b/../d
# 输出结果 Not Found

五、uuid

@app.route('/resource/<uuid:resource_id>')defshow_uuid(resource_id):returnf'type: uuid, value:{resource_id}, python_type:{type(resource_id).__name__}'
  1. 测试/resource/123e4567-e89b-12d3-a456-426614174000
# 输出结果 type: uuid, value: 123e4567-e89b-12d3-a456-426614174000, python_type: UUID
  1. 测试/resource/550e8400-e29b-41d4-a716-446655440000
# 输出结果 type: uuid, value: 550e8400-e29b-41d4-a716-446655440000, python_type: UUID
  1. 测试/resource/not-a-uuid
# 输出结果 Not Found
  1. 测试/resource/123
# 输出结果 Not Found
  1. 测试/resource/123e4567-e89b-12d3-a456-42661417400(短了)
# 输出结果 Not Found
  1. 测试/resource/123e4567-e89b-12d3-a456-4266141740000(长了)
# 输出结果 Not Found
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 19:49:38

AttributeModifier与AttributeUpdater区别及源码使用DEMO

AttributeModifier与AttributeUpdater区别及源码使用DEMO 一、结论 鸿蒙ArkUI中AttributeModifier和AttributeUpdater均用于组件属性动态配置,核心差异在于更新机制与适用场景: AttributeModifier是基础属性设置接口,主打多状态样式封装、共享UI样式、小批量属性更新,需…

作者头像 李华
网站建设 2026/9/2 4:18:45

数据挖掘08

** 数据挖掘08——基于统计模型的序列数据挖掘 ** 一、概述 1.序列数据挖掘方法分类 &#xff08;1&#xff09;模式匹配 把未知量伸长或者缩短到参考模式的长度。 然后使用动态规划方法把被比较的数据扭曲或者弯折&#xff0c;时期特征与模型特征对齐。 比如&#xff1a;DTW &…

作者头像 李华
网站建设 2026/9/2 22:25:36

构建企业级体素可视化平台的5个关键架构设计

构建企业级体素可视化平台的5个关键架构设计 【免费下载链接】cesium An open-source JavaScript library for world-class 3D globes and maps :earth_americas: 项目地址: https://gitcode.com/GitHub_Trending/ce/cesium 工业可视化领域正面临前所未有的技术挑战&…

作者头像 李华
网站建设 2026/9/2 23:06:04

MiniCPM-V本地部署终极指南:3步完成零代码启动

你是否曾经遇到过这样的困境&#xff1f;想要体验最新AI多模态模型的强大功能&#xff0c;却被复杂的安装步骤和配置要求劝退&#xff1f;面对需要下载数十个依赖、配置各种环境变量的技术文档感到无从下手&#xff1f;今天&#xff0c;我们将彻底改变这一现状&#xff0c;通过…

作者头像 李华
网站建设 2026/9/2 16:04:57

如何打造专属媒体中心:Jellyfin跨平台部署终极指南

你是否曾经为了在不同设备上观看同一部电影而反复拷贝文件&#xff1f;是否希望建立一个属于自己的私人媒体库&#xff0c;随时随地享受高清影音&#xff1f;今天&#xff0c;我将带你一步步了解Jellyfin这个开源媒体服务器的部署方法&#xff0c;让你轻松拥有专属的媒体中心。…

作者头像 李华
网站建设 2026/9/2 14:20:59

本地大型语言模型部署革命:lemonade SDK深度解析

本地大型语言模型部署革命&#xff1a;lemonade SDK深度解析 【免费下载链接】lemonade Local LLM Server with NPU Acceleration 项目地址: https://gitcode.com/gh_mirrors/lemonade2/lemonade 还在为部署大型语言模型而头疼吗&#xff1f;复杂的配置、繁琐的环境搭建…

作者头像 李华