Flask自定义正则路由方法

Posted zh2000

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask自定义正则路由方法相关的知识,希望对你有一定的参考价值。

 1 # coding:utf-8
 2 from flask import Flask, current_app, redirect, url_for
 3 from werkzeug.routing import BaseConverter
 4 app = Flask(__name__)
 5 
 6 @app.route("/goods/<int:goods_id>")
 7 # @app.route("/goods/<goods_id>") 不加转换器类型,默认是普通字符串规则(除了/的字符)
 8 def goods_detail(goods_id):
 9     """定义视图的函数"""
10     return "good detail page %s" % goods_id
11 
12 
13 # 定义一个类,用werkzeug.routing的BaseConverter为父类,继承。
14 # 定义自己的转换器
15 class mobileConverter(BaseConverter):
16     def __init__(self, url_map):
17         super().__init__(url_map)
18         self.regex = r1[34578]d{9}
19 
20 # class RegexConverter(BaseConverter):
21     # 创建一个对象,并找到regex正则表达式
22     #def __init__(self, url_map, regex):
23         #调用父类的初始化方法
24         #super().__init__(url_map)
25         # 将正则表达式的参数保存到对象属性中,flask会去使用这个属性来进行路由的正则匹配
26         #self.regex = regex
27 
28 # 将自定义的转换器添加到flask的应用中
29 # app.url_map.converters["re"] = RegexConverter
30 app.url_map.converters["mobile"]= mobileConverter
31 
32 # 正则表达式 re(r‘正则内容‘)  <re>:
33 # @app.route("/send/<re(r‘1[34578]d{9}‘):mobile>")
34 @app.route("/send/<mobile:mobile_num>")
35 def send_sms(mobile_num):
36     return "send to %s" % mobile_num
37 # def send_sms(mobile):
38     # return "send sms to %s" % mobile
39 
40 
41 
42 
43 if __name__ == __main__:
44     print(app.url_map)
45     app.run(debug = True)

 

以上是关于Flask自定义正则路由方法的主要内容,如果未能解决你的问题,请参考以下文章

正则匹配路由

VSCode自定义代码片段11——vue路由的配置

VSCode自定义代码片段11——vue路由的配置

VSCode自定义代码片段11——vue路由的配置

Flask框架—— 反向解析配置信息路由系统模板请求响应闪现请求扩展session

Flask框架详细上下文管理机制