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所返回的值