from flask import Flask, request
from werkzeug.routing import BaseConverter
app = Flask(__name__)
"""
# 需求:127.0.0.1:5000/mobile/18511112222
# 自定义转换器类
# 思路
# 1.自定义转换器类,继承于:BaseConverter
# 2.重写父类的regex属性,自定义正则表达式
# 3.将自定义的转换器类添加到默认的转换器字典中
# 4.使用自定义的转换器完成url路径参数的匹配
DEFAULT_CONVERTERS = {
"default": UnicodeConverter,
"string": UnicodeConverter,
"any": AnyConverter,
"path": PathConverter,
"int": IntegerConverter,
"float": FloatConverter,
"uuid": UUIDConverter,
# 添加自定义的转换器键值对
"mob": MobileConverter
}
"""
class MobileConverter(BaseConverter):
regex = r'1[3-9]\d{9}$'
app.url_map.converters["mob"] = MobileConverter
@app.route('/mobile/<mob:mobile_num>')
def get_mobile(mobile_num):
print(mobile_num)
print(type(mobile_num))
return 'Hello World!'
if __name__ == '__main__':
app.run(debug=True, port=8000)