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

Flask 自定义路由转换器

步骤

  1. 创建自定义转换器类

    • 继承 werkzeug.routing.BaseConverter
    • 实现 to_python 和(可选)to_url 方法。
  2. 将转换器注册到 Flask 应用

  3. 在路由中使用转换器

示例

创建转换器

假设需要自定义一个转换器 FourDigitYearConverter,用于匹配四位年份。

# converters.pyfrom werkzeug.routing import BaseConverterclass FourDigitYearConverter(BaseConverter):def __init__(self, url_map):super().__init__(url_map)self.regex = r'\d{4}'  # 匹配四位数字def to_python(self, value):return int(value)  # 转换为整数def to_url(self, value):return f"{value:04d}"  # 确保是四位数字

注册转换器

在 Flask 应用中注册转换器:

from flask import Flask
from converters import FourDigitYearConverterapp = Flask(__name__)# 注册转换器
app.url_map.converters['yyyy'] = FourDigitYearConverter

定义路由

@app.route('/year/<yyyy:year>/')
def year_view(year):return f"The year is {year}."
测试路由

访问 /year/2024/ 时:

  • URL 参数 2024 被捕获并转换为整数 2024
反向生成 URL
with app.test_request_context():url = flask.url_for('year_view', year=2024)print(url)  # 输出:/year/2024/

http://www.lryc.cn/news/492300.html

相关文章:

  • 【淘汰9成NLP面试者的高频面题】LSTM中的tanh和sigmoid分别用在什么地方?为什么?
  • gocv调用opencv添加中文乱码的解决方案
  • org.apache.log4j的日志记录级别和基础使用Demo
  • IC数字后端实现之大厂IC笔试真题(经典时序计算和时序分析题)
  • java centos 离线使用sherpa-onnx文字转语音TTS
  • Android 11 三方应用监听关机广播ACTION_SHUTDOWN
  • OpenHarmony-3.驱动HDF
  • 《白帽子讲Web安全》13-14章
  • CSS - CSS One-Line
  • gitlab ssh-key 绑定
  • wordpress使用Markdown语法写的文章图片显示不正常,记录一次折腾之旅
  • 从零开始学GeoServer源码(二)添加支持arcgis切片功能
  • WPF异步UI交互功能的实现方法
  • 网络基础 - 地址篇
  • # [Unity] 【游戏开发】Unity开发基础2-Unity脚本编程基础详解
  • Milvus实操
  • 35 基于单片机的精确电压表DA-AD转换
  • JDBC 设置 PostgreSQL 查询中 any(?) 的参数
  • 【11-20期】Java面试进阶:深入解析核心问题与实战案例
  • C++——内存池_2
  • 如何使用PHP爬虫获取店铺详情:一篇详尽指南
  • HTML5和CSS3新增特性
  • linux运行vue编译后的项目
  • 论文阅读:A Software Platform for Manipulating theCamera Imaging Pipeline
  • 【MySQL篇】持久化和非持久化统计信息的深度剖析(第一篇,总共六篇)
  • Ubuntu下安装Qt
  • 丹摩征文活动 | AI创新之路,DAMODEL助你一臂之力GPU
  • 数据库(总结自小林coding)|索引失效的场景、慢查询、原因及如何优化?undo log、redo log、binlog 作用、MySQL和Redis的区别
  • Docker容器运行CentOS镜像,执行yum命令提示“Failed to set locale, defaulting to C.UTF-8”
  • OpenCV基本图像处理操作(六)——直方图与模版匹配