码迷,mamicode.com
首页 > 其他好文 > 详细

Flask自定义正则路由方法

时间:2020-02-27 16:17:44      阅读:43      评论:0      收藏:0      [点我收藏+]

标签:表达式   %s   col   deb   字符串   内容   _id   detail   init   

 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自定义正则路由方法

标签:表达式   %s   col   deb   字符串   内容   _id   detail   init   

原文地址:https://www.cnblogs.com/zh2000/p/12372493.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!