• 装换器


      装换器:

        有时须要给 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
  • 相关阅读:
    Laravel在不同的环境调用不同的配置文件
    Sphinx全文索引 第一节
    Eclipse 快捷键 (应用中自己总结)
    Ehcache计算Java对象内存大小
    计算Java对象内存大小
    HashMap
    CPU高的排查
    JVM-GC学习
    详细分析Java中断机制-转载
    GC知识记录
  • 原文地址:https://www.cnblogs.com/3-tong/p/9381718.html
Copyright © 2020-2023  润新知