自定义url转换器。

无纤尘

一、自定义数据类型
1、实现一个类,继承自'BaseConverter'。
2、在自定义的类中,重写'regex',也就是这个变量的正则表达式。
3、将自定义的类,映射到'app.url_map.converters'
示例:编写一个类型,可以识别电话号码。

from werkzeug.routing import BaseConverter

class TelephoneConverter(BaseConverter):
    regex = r'1[85743]\d{9}'

app.url_map.converters['tel'] = TelephoneConverter

@app.route('/tele/<tel:my_tel>')
def mytel(my_tel):
    return 'the number is %s' % my_tel

若满足电话号码格式,既可以运行,否则找不到该文件。

二、url转换to_python(self,value)的作用:这个函数的返回值,将传递给视图view函数中作为参数。

三、to_url(self,value)的作用:这个方法的返回值,将会在调用url_for函数的时候生成符合要求url形式。

class ListConverter(BaseConverter):
    def to_python(self,value):
        return value.split('+')
    def to_url(self,value):
        return '+'.join(value)
        
app.url_map.converters['list'] = ListConverter

@app.route('/')
def hello_world():
    print(url_for('myp1',my_list = ['1','2','3']))
    return  url_for('myp1',my_list = ['1','2','3'])

@app.route('/p1/<list:my_list>/')
def myp1(my_list):
    return 'the value is %s' % my_list

示例图:
自定义url转换器。

自定义url转换器。

版权协议须知!

本篇文章来源于 岳岳 ,如本文章侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意

325 0 2020-11-24


分享:
flask中的宏

flask中的宏模板中的宏和python中的函数类似,可以...

阅读全文
自定义时间过滤器

自定义时间过滤器题目:用户发一个帖子,要求记录用户发帖时间...

阅读全文
自定义过滤器

过滤器本质就是一个函数,如果在模板中调用这个过滤器,那么就...

阅读全文
自定义响应

自定义响应注意:在编写代码之前先导入Responsefro...

阅读全文
icon_mrgreen.gificon_neutral.gificon_twisted.gificon_arrow.gificon_eek.gificon_smile.gificon_confused.gificon_cool.gificon_evil.gificon_biggrin.gificon_idea.gificon_redface.gificon_razz.gificon_rolleyes.gificon_wink.gificon_cry.gificon_surprised.gificon_lol.gificon_mad.gificon_sad.gificon_exclaim.gificon_question.gif
  • 默认
  • 护眼
  • 夜晚
  • 壁纸
  • 默认