flask 自定义转换器
2024-09-05 03:39:54
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)
最新文章
- 数据分析 - 斯特鲁普效应(Stroop effect)
- 使用替换shader渲染
- 真有用?Snap和Flatpak 通吃所有发行版的打包方式。
- pci 记录
- php 生成器 入门理解
- 【19】设计class犹如设计type
- canvas绘图不清晰的解决方案
- 原生API实现拖拽上传文件实践
- FFMpeg.H264解码win开发环境搭建
- H3C交换机配置命令(收集)
- 如何系统地自学 Python?
- 7.STM32中GPIO理解
- P1939【模板】矩阵加速(数列)
- php://input、$_POST与$GLOBALS[&#39;HTTP_RAW_POST_DATA&#39;]三者的区别
- Android程序员学WEB前端(4)-HTML(4)-注册页面-Sublime
- 使用cocostudio 需要在Android.mk文件的配置
- Advanced Data Structures in competitive programming
- 如何打war包
- 3226: [Sdoi2008]校门外的区间
- Fitnesse框架简单介绍
热门文章
- 【原创】大叔经验分享(89)docker启动openjdk执行jmap报错
- SpringCloud";灰度部署";——动态刷新网关配置
- Python Selenium、PIL、pytesser 识别验证码
- 升级xcode11&;ios13的坑
- ubuntu16.04安装zabbix-server3.4
- Mount 使用方法
- 搭建nginx文件服务器
- mxnet在windows使用gpu 出错
- How Many Answers Are Wrong(带权并查集)
- BCB6 使用TZCompressionStream压缩