美文网首页程序员python 高级码农成才之路
flask---系统转换器,自定义转换器

flask---系统转换器,自定义转换器

作者: 幼姿沫 | 来源:发表于2020-11-28 08:57 被阅读0次

系统转换器,自定义转换器

在 web 开发中,可能会出现限制用户访问规则的场景,那么这个时候就需要过滤指定用户,所以可以使用转换器实现

转换器的本质:通过正则表达式,匹配路由地址

一.系统自带转换器

DEFAULT_CONVERTERS = {

'default':          UnicodeConverter,

'string':          UnicodeConverter,

'any':              AnyConverter,

'path':            PathConverter,

'int':              IntegerConverter,

'float':            FloatConverter,

'uuid':            UUIDConverter,

}

系统自带的转换器具体使用方式在每种转换器的注释代码中有写,请留意每种转换器初始化的参数。

二.自定义转换器

自定义转换器,具体实现步骤为:

导入转换器基类(BaseConverter):

Flask中所有的路由的匹配规则,都是使用转换器实现

自定义转换器:自定义类继承于转换器基类

添加转换器到默认的转换器字典中

使用自定义转换器实现自定义匹配规则

代码实现

from flask import Flask

#导入基类转换器

from werkzeug.routing import BaseConverter

app = Flask(__name__)# 1.自定义类,继承BaseConverter

class  MyRegexConverter(BaseConverter):

# 2.编写初始化方法, init方法, 接收两个参数, url_map, regex, 并初始化父类空间和子类空间def__init__(self,url_map,regex):

super(MyRegexConverter, self).__init__(url_map)       

self.regex = regex

# 3.将自定义转换器类,添加到默认的转换列表中

app.url_map.converters['re'] = MyRegexConverter

#使用自定义转换器#接收3位整数

@app.route('/<re("\d{3}"):num>')

def   hello_world(num):

print("num = %s"%num)

return"the num is %s"%num

#接收一个手机号@app.route('/<re("1[345678]\d{9}"):mobile>')

def    get_phone_number(mobile):

return "the mobile is %s" % mobile

if__name__ =='__main__':   

app.run()

相关文章

  • flask---系统转换器,自定义转换器

    系统转换器,自定义转换器 在 web 开发中,可能会出现限制用户访问规则的场景,那么这个时候就需要过滤指定用户,所...

  • easyExcel类 | 其它特殊用法

    自定义转换器 通过自定义转换器,比如将1、0转换成男、女的实例: 性别属性注入SexConverter转换器: 再...

  • Flask路由提取参数与自定义路由转换器

    转换器为int类型 没有定义转换器类型,默认是普通字符串规则 自定义转换器

  • spring-mvc-5-RestFul CRUD

    处理静态资源 SpringMVC数据绑定流程 数据转换 自定义类型转换器 自定义转换器实例 新建Controlle...

  • SpringBoot解决返回体content-type非json

    最佳解决方案为自定义消息转换器。 首先,为什么要自定义消息转换器?所见即所得,原本的消息转换器并不能满足我们目前的...

  • BeanUtils转换日期的问题

    使用BeanUtils.populate之前,先注册自定义转换器 根据需要可以把自定义转换器写的更加强大,兼容更多格式

  • Flask05.自定义类型转换器

    创建转换器 将转换器添加到路由转换器字典 使用转换器

  • Struts类型转换

    自定义类型转换器a、编写一个类,继承StrutsTypeConverter 2.注册类型转换器 3.转换失败时的数...

  • javaEE配置全局日期转换器

    1.建立CustomDateEdtor .java /** * 日期自定义转换器 * @author lx * *...

  • Flask

    首先安装虚拟环境,命令如下: 请求方式 在Flask中支持下面这些转换器: 自定义转换器 变量 标签 注释 过滤器...

网友评论

    本文标题:flask---系统转换器,自定义转换器

    本文链接:https://www.haomeiwen.com/subject/afgrmktx.html