关于Flask_自定义路由转换器的方法和使用

Flask_自定义路由转换器

一.定义方法

  • 处理一个参数中一个数据的方法:
    • 导入BaseConverter的包
    • 实现转换器类,保存匹配数据的正则表达式
    • 将转换器添加到Flask应用中
    • 在需要使用转换器的定义去使用
  • 处理一个参数中多个数据的方法:
    • 导入BaseConverter的包
    • 实现转换器类,重写to_python方法,这个方法主要用于去处理一个参数多个方法
    • 将转换器添加到Flask应用中
    • 在需要使用转换器的定义去使用

二.实例

  • 处理一个参数中一个数据的方法实例:
#coding=utf-8

from flask import Flask
from werkzeug.routing import BaseConverter

app = Flask(__name__)

# 自定义手机号数据类型的路由转换类
class PhoneConverter(BaseConverter):
    regex = '\d{11}'

# 将这个自定义的路由转换类添加到url_map.converter中,才能使用
app.url_map.converters['phone'] = PhoneConverter

@app.route('/<phone:num>')
def show(num):
    print(f'接收到的手机号为{num}')
    return f'返回的手机号是{num}'

if __name__ == '__main__':
    app.run(debug=True)

在这里插入图片描述

  • 处理一个参数中多个数据的方法实例:
  #conding=utf-8
  
  from distutils.log import debug
  from flask import Flask
  from werkzeug.routing import BaseConverter
  
  app = Flask(__name__)
  
  class userConverter(BaseConverter):
      def to_python(self, value):
          return value.split('+')
  
  app.url_map.converters['user'] = userConverter
  
  @app.route('/user_info/<user:info>')
  def show(info):
      print(f'接收到的用户信息:{info}')
      return f'返回的用户信息:{info}'
  
  if __name__ == '__main__':
      app.run(debug=True)

在这里插入图片描述
注:

如果觉得笔记有些问题,麻烦在百忙之中在评论中指正,或提出建议!另外,如果觉得这份笔记对你有所帮助,麻烦动动发财的小手手点一波赞!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值