zoukankan      html  css  js  c++  java
  • 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 = r'1[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)
  • 相关阅读:
    性能分析和优化思维导图
    linux系统性能监控命令sar
    Postman发送json格式的数据
    postman的collection上传文件
    [转]可任意自定义的UITableViewCell
    时间函数举例2
    输入年月日判断这是一年中的第几天.
    时间函数举例1
    打印出国际象棋棋盘.
    打印楼梯同时在楼梯上方打印出两个笑脸.
  • 原文地址:https://www.cnblogs.com/zh2000/p/12372493.html
Copyright © 2011-2022 走看看