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
}
"""
# 1.自定义转换器类,继承于:BaseConverter
class MobileConverter(BaseConverter):
# 2.重写父类的regex属性,自定义正则表达式
# 注意:不能添加^匹配开头
regex = r'1[3-9]\d{9}$'
# 3.将自定义的转换器类添加到默认的转换器字典中
# converters属性本质是DEFAULT_CONVERTERS的拷贝之后的字典
app.url_map.converters["mob"] = MobileConverter
# 4.使用自定义的转换器完成url路径参数的匹配
@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)
【flask框架】——自定义路由转换器
最新推荐文章于 2024-12-09 21:28:44 发布
本文介绍了如何使用Flask框架结合自定义转换器MobileConverter,为127.0.0.1:5000/mobile/18511112222这样的URL路径匹配特定格式的手机号。通过正则表达式和url_map设置,实现高效参数解析。
1万+

被折叠的 条评论
为什么被折叠?



