Flask 的路由设置

设置Flask的匹配规则 ,route中默认指定的路径

 @app.route("/")
 def hello_flask():
     return "hello1, flask"

自定义路由匹配转换器

导入我们需要的基类

 from werkzeug.routing import BaseConverter

 自定义转换器

 # 自定义正则转换器
 class RegexConverter(BaseConverter):
     regex = "[0-9]{6}"# 添加转换器到默认的转换器字典中,指定转换器适用面名为:re
 app.url_map.converters['re'] = RegexConverter
 ​
 # 使用转换器去实现自定义的匹配规则
 @app.route("/user/<re:user_id>")
 def user_info(user_id):
     return "user_id为:%s" % user_id

自定义转换器升级版本

 class RegexConverter(BaseConverter):
     # 底层的BaseConverter需要一个map参数,*args则是获取路由中传来的正则表达式
     def __init__(self, url_map, *args):
         super().__init__(url_map)  # 获取到的map还是交给父类去处理
         self.regex = args[0]  # 将接受的第1个参数当作匹配规则进行保存
# 将自定义转换器添加到转换器字典中,并指定转换器使用时名字为: re
 app.url_map.converters['re'] = RegexConverter
 ​
 ​
 # 路由传递参数     在路由中加入匹配规则
 @app.route("/user/<re('[0-9]{4}'):user_id>")
 def user_info(user_id):
     return "user_id为:%s" % user_id
posted @ 2021-01-01 12:23  This_is_me  阅读(342)  评论(0)    收藏  举报