from flask import Flask
from flask import url_for
from flask import redirect
from werkzeug.routing import BaseConverter
"""
路由提取参数与自定义路由转化器进阶
"""
app = Flask(__name__, static_url_path='/static', static_folder='static', template_folder='templates') # 万能转换器
class RegexConverter(BaseConverter): def __init__(self, url_map, regex):
# 调用父类的初始化方法
super(RegexConverter, self).__init__(url_map)
# 将正则表达式的参数保存到对象的属性中,flask会去使用这个属性来进行路由的正则匹配
self.regex = regex
# self.regex 固定的属性,专门用来存放正则表达式 def to_python(self, value):
""""""
print("to_python方法被调用")
# return "abc"
# value是在路径进行正则表达式匹配的时候提取的参数
return value def to_url(self, value):
"""使用url_for的方法的时候被调用"""
print("to_url方法被调用")
# return "15811111111"
return value # 将自定义的转换器添加到flask的应用中
app.url_map.converters["re"] = RegexConverter # re(参数): 参数传入正则表达式,这样就可以转换任何你传入的规则
@app.route("/send_phone/<re(r'1[34578]\d{9}'):mobile_num>")
def send_phone(mobile_num):
return "send phone to %s" % mobile_num @app.route("/index")
def index():
url = url_for("send_sms", mobile_num="")
# /send/18922222222
return redirect(url) if __name__ == '__main__':
app.run(debug=True)

最新文章

  1. 数据分析 - 斯特鲁普效应(Stroop effect)
  2. 使用替换shader渲染
  3. 真有用?Snap和Flatpak 通吃所有发行版的打包方式。
  4. pci 记录
  5. php 生成器 入门理解
  6. 【19】设计class犹如设计type
  7. canvas绘图不清晰的解决方案
  8. 原生API实现拖拽上传文件实践
  9. FFMpeg.H264解码win开发环境搭建
  10. H3C交换机配置命令(收集)
  11. 如何系统地自学 Python?
  12. 7.STM32中GPIO理解
  13. P1939【模板】矩阵加速(数列)
  14. php://input、$_POST与$GLOBALS[&#39;HTTP_RAW_POST_DATA&#39;]三者的区别
  15. Android程序员学WEB前端(4)-HTML(4)-注册页面-Sublime
  16. 使用cocostudio 需要在Android.mk文件的配置
  17. Advanced Data Structures in competitive programming
  18. 如何打war包
  19. 3226: [Sdoi2008]校门外的区间
  20. Fitnesse框架简单介绍

热门文章

  1. 【原创】大叔经验分享(89)docker启动openjdk执行jmap报错
  2. SpringCloud&quot;灰度部署&quot;——动态刷新网关配置
  3. Python Selenium、PIL、pytesser 识别验证码
  4. 升级xcode11&amp;ios13的坑
  5. ubuntu16.04安装zabbix-server3.4
  6. Mount 使用方法
  7. 搭建nginx文件服务器
  8. mxnet在windows使用gpu 出错
  9. How Many Answers Are Wrong(带权并查集)
  10. BCB6 使用TZCompressionStream压缩