flaks-自定义url转换器

flaks-自定义url转换器


  •  1 from flask import Flask, url_for
     2 from werkzeug.routing import BaseConverter
     3 
     4 app = Flask(__name__)
     5 
     6 
     7 class TelConverter(BaseConverter):
     8     regex = '1[34578][\d]{9}'
     9 
    10     def to_python(self, value):
    11         return '手机号码为: %s' % value
    12 
    13     def to_url(self, value):
    14         return 'phone'
    15 
    16 
    17 app.url_map.converters['tel'] = TelConverter
    18 
    19 
    20 @app.route('/')
    21 def index():
    22     return url_for('tel_page', tel='13112345678')
    23 
    24 
    25 @app.route('/tel/<tel:phone>/')
    26 def tel_page(phone):
    27     return phone
    28 
    29 
    30 if __name__ == '__main__':
    31     app.run()

     

  • flask自定义的url转换器必须要继承BaseConverter这个类,然后再更新到app的url_map里面。

  • 重写regex这个属性,这个属性就是自定义url匹配的正则
  • to_python方法:将传进来的value参数进行一些操作,再返回一个值出去,这个函数的返回值将被用为函数视图
  • to_url:当有url_for调用该函数视图的时候,会调用该url的url转换器的to_url方法,to_url返回的值将是url_for所返回的值

 

posted @ 2019-09-10 15:44  Ivy丶  阅读(265)  评论(0)    收藏  举报