Flask转换器不够用?自己造一个!

一、Flask的默认转换器

转换器含义
default接受字符串,默认转换器
stirng接受字符串,跟默认一样
int接受整数
float同 int ,但是接受浮点数
uuid唯一识别码
path和默认的相似,但也接受斜线

二、自己定义一个转换器

  在Flask中,默认支持6种转换器,但这些转换器并不能完全按照我们的意愿去接受,比如我们想接受一个手机号这些默认的转换器就不能帮我们实现,我们就可以自己定义一个转换器

步骤如下:

  1. 导入转换器基类BaseConverter

    rom werkzeug.routing import BaseConverter
    
  2. 自定义类继承于转换器基类

    class PhoneConverter(BaseConverter):#我这里定义电话转换器
        def __init__(self,map):
            BaseConverter.__init__(self, map)
            self.regex=r'1[34578]\d{9}'
    
  3. 添加转换器到默认的转换器字典app.url_map.converters

    app.url_map.converters['phone']=PhoneConverter
    
  4. 使用自定义转换器实现自定义匹配规则

    @app.route("/<phone:number>")
    

在这里插入图片描述

三、万能一点!

class ReConverter(BaseConverter):#我这里定义万能转化器
   	def __init__(self,map,regex):
       	BaseConverter.__init__(self, map)
       	self.regex=regex
app.url_map.converters['re']=ReConverter#添加
@app.route("/<re(r'1[34578]\d{9}'):number>")#使用时通过正则表达式实现
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值