装换器

Posted 3-tong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了装换器相关的知识,希望对你有一定的参考价值。

  装换器:

    有时须要给 URL 添加一定规则,进行限制路由的形式。

    规则可以用 <converter:variable_name> 指定一个可选的转换器  ,参数1:转换器类型,  参数2 :传过来的变量

 

1  Flask自带的转换器

  DEFAULT_CONVERTERS = {

  1. ‘default’: UnicodeConverter,(字符串与2同)
  2. ‘string’: UnicodeConverter,
  3. ‘any’: AnyConverter, 匹配any中存在的地址
  4. ‘path’: PathConverter, 匹配路径
  5. ‘int’: IntegerConverter,
  6. ‘float’:FloatConverter,
  7. ‘uuid’: UUIDConverter 匹配 UUID(x-x-x-xxx-xxxx)之类的字符串

    }

2   自定义转换器的步奏:

  1.自定义一个继承BaseConverter的Converter类

  2. 重写?父类的属性,定义转换器?规则

    regex = (新的正则规则)

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

 

 

技术分享图片

 

自定义转换器其他两个函数实现

继承于自定义转换器之后,还可以实现 to_python 和 to_url 这两个函数去对匹配参数做进一步处理:

  • 1  to_python:
    • 该函数参数中的 value 值代表匹配到的值,可输出进行查看
    • 匹配完成之后,对匹配到的参数作最后一步处理再返回,比如:转成 int 类型的值再返回:
class RegexConverter(BaseConverter):
    def __init__(self, url_map, *args):
        super(RegexConverter, self).__init__(url_map)
        # 将接受的第1个参数当作匹配规则进行保存
        self.regex = args[0]

    def to_python(self, value):
        return int(value)
  • 2  to_url:
    • 在使用 url_for 去获取视图函数所对应的 url 的时候,会调用此方法对 url_for 后面传入的视图函数参数做进一步处理
    • 具体可参见 Flask 的 app.py 中写的示例代码:ListConverter

以上是关于装换器的主要内容,如果未能解决你的问题,请参考以下文章

Silverlight 中的十进制转换器无法正确处理丢失焦点

[.NET] 打造一个很简单的文档转换器 - 使用组件 Spire.Office

DOM对象 与 jQuery对象 之间的相互装换

字段拼接 装换

Windows 下字节装换

DataSet装换为泛型集合