装换器

装换器:

    有时须要给 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

原文地址:https://www.cnblogs.com/3-tong/p/9381718.html

时间: 2024-10-08 10:42:06

装换器的相关文章

DataSet装换为泛型集合 222

#region DataSet装换为泛型集合 /// <summary> /// 利用反射和泛型 /// </summary> /// <param name="dt"></param> /// <returns></returns> public static List<T> ConvertToList<T>(DataTable dt) { // 定义集合 List<T> ts

opencv之深拷贝及浅拷贝,IplImage装换为Mat

一.(1)  浅拷贝: Mat B; B = image  // 第一种方式 Mat C(image); // 第二种方式 这两种方式称为浅copy,是由于它们有不同的矩阵头,但是它们共享内存空间,即指向一个矩阵.当图像矩阵发生变化时,两者相关联,都会变化. (2)深拷贝 Mat B,C; B = image.clone();       // 第一种方式 image.copyTo(C); // 第二种方式 深拷贝是真正的copy了一个新的图像矩阵,此时image,B,C三者相互没有影响. 二.

原生函数和强制类型装换

var a = new String("abc"); console.log(typeof a); //是Object,而不是string 使用new String("abc"); 创建的是字符串 abc 的封装对象,而不是基本类型值"abc". 封装对象 由于基本类型值没有.length和.toString()这样的属性和方法,需要通过封装对象才能访问,此时JavaScript会自动为基本类型值包装一个封装对象,如: var a = "

oracle中的装换函数

日期装换成字符的函数:TO_CHAR(date[,fmt[,params]]) 默认格式:DD-MON-RR 参数说明: date:将要装换的日期 fmt:装换的格式 params:日期的语言(可以不写)例子: SQL> select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual; TO_CHAR(SYSDATE,'YY ------------------- 2016-04-21 07:55:54 字符型转换成日期的函数: TO_DATE

Conversion of feet/inches to meters-英尺、英里装换为米

Conversion of feet/inches to meters-英尺.英里装换为米,允许重复计算: //Conversion of feet/inches to meters-英尺.英里装换为米,允许重复计算 #include<iostream> #include<cmath> using namespace std; void get_input(double& feet,double& inch); double convert(double& 

mvc 解决StyleBundle中 图片绝对路径 装换成相对路径的问题

问题 解决办法 mvc 解决StyleBundle中 图片绝对路径 装换成相对路径的问题

整数装换为字符串intToArray与字符串转为整数 arrayToInt实现

7.  整数装换为字符串itoa的实现 1 char *intToArray(int number, char *str) 2 { 3 if(str == NULL) 4 { 5 return NULL; 6 } 7 char *ret = str; 8 char *left = str; 9 char temp = '\0'; 10 // 负数的处理 11 if(number < 0) 12 { 13 number = -number; 14 *ret++ = '-'; 15 left++;

2、8、10、16进制之间的相互装换

十进制数字175  可以写成: 175=5*100+7*101+1*102(从低位到高位依次乘以进制的n-1次方的和) 同理我们可以得到二进制转换十进制的方法: ♥二进制转换十进制 100101=1*20+0*21+1*22+0*23+0*24+1*25=37 也就是说100101的十进制数字就是37 ♦简单方法(对应法) 第八位 第七位 第六位 第五位 第四位 第三位 第二位 第一位 27 26 25 24 23 22 21 20 128 64 32 16 8 4 2 1 ♥十进制转换二进制

c#中时间戳和日期的相互装换

时间戳转换为日期: /// <summary> /// 将时间戳转换为datetime类型 /// </summary> /// <param name="yn"></param> /// <returns></returns> public DateTime GetTime(int now) { string timeStamp = now.ToString(); DateTime dtStart = TimeZ