3.1正则转换器定义

Class RegexConverter(BaseConverter):

  regex = "[0-9]{6}"

app.url_map.converters["re"] = RegexConverter

@app.route("/user/<re:user_id>")

def index():

  return "hello wolrd"

from flask import Flask
from werkzeug.routing import BaseConverter # 创建自定义转换器
class RegexConverter(BaseConverter):
regex = "[0-9]{6}" app = Flask(__name__)
# 将自己的转换器加入默认的服务器列表中
app.url_map.converters["re"] = RegexConverter # 规则: /user/6位数字 [0-9]{6}
# 自定义转换器
@app.route("/user/<re:user_id>")
def index(user_id):
return "index + %s" % user_id if __name__ == '__main__':
app.run(debug=True)

创建自定义转换器

3.2正则自定义转换器

Class RegexConverter(BaseConverter):

  def __init__(self, url_map , *args):

    super(RegexConverter, self).__init__(url_map)

    self.regex = args[0]

app.url_map.converters["re"] = RegexConverter

@app.route("/user/<re(‘[0-9]{6}’):user_id>")

def index():

  return "hello wolrd"

from flask import Flask
from werkzeug.routing import BaseConverter # 创建自定义转换器
class RegexConverter(BaseConverter):
# regex = "[0-9]{6}"
def __init__(self, url_map, *args):
super(RegexConverter, self).__init__(url_map)
self.regex = args[0] app = Flask(__name__)
# 将自己的转换器加入默认的服务器列表中
app.url_map.converters["re"] = RegexConverter # 规则: /user/6位数字 [0-9]{6}
# 自定义转换器
@app.route("/user/<re('[0-9]{5}'):user_id>")
def index(user_id):
return "index + %s" % user_id if __name__ == '__main__':
app.run(debug=True)

自定义转换器

3.3 转换器 to_python to_url

class ListConverter():

  regex  = "(\\d,)+\\d$"

  

  # 匹配参数后 对参数进行处理 再返回到视图函数上去

  def to_python(self, value):

    return value.split(",")

  # 使用url_for 的时候,对视图函数传的参数进行处理,以匹配路由 
# redirect(url_for("demo1",user_id=[1,2,3,4]))

  def to_url(self, value):

    return ",".join(str(v) for v in value)

  

from flask import Flask, redirect, url_for
from werkzeug.routing import BaseConverter # 创建自定义转换器
class RegexConverter(BaseConverter):
# regex = "[0-9]{6}"
def __init__(self, url_map, *args):
super(RegexConverter, self).__init__(url_map)
self.regex = args[0] class ListConverter(BaseConverter):
regex = "(\\d+,)+\\d$" # 匹配参数后 对参数进行处理 再返回到视图函数上去
def to_python(self, value):
return value.split(',') # 使用url_for 的时候,对视图函数传的参数进行处理,以匹配路由
def to_url(self, value):
result = ",".join(str(v) for v in value)
return result app = Flask(__name__)
# 将自己的转换器加入默认的服务器列表中
app.url_map.converters["re"] = RegexConverter
app.url_map.converters["list"] = ListConverter # 规则: /user/6位数字 [0-9]{6}
# 自定义转换器
@app.route("/user/<re('[0-9]{5}'):user_id>")
def demo1(user_id):
return "index + %s" % user_id @app.route("/users/<list:user_id>")
def demo2(user_id):
return "uses + %s" % user_id @app.route("/demo3")
def demo3():
return redirect(url_for("demo2", user_id=[1, 2, 3, 4])) if __name__ == '__main__':
app.run(debug=True)

to_python to_url

3.4 错误捕捉 

abort(404) #直接抛出 404

@app.errorhandler(404)  # 捕捉404 返回不见了

def demo1():

  return "页面不见了"

最新文章

  1. 响应式图片srcset学习
  2. Using Recursive Common table expressions to represent Tree structures
  3. 拼图游戏(js,C#,java三种语言)
  4. js中 map 遍历数组
  5. 关于UltraISO打开iso文件后只有部分文件问题
  6. Linux进程切换代码分析
  7. spring字符编码设置
  8. 为什么android的R类要定义成16进制
  9. 转:MFC网络编程学习
  10. DevExpress XtraReports 入门四 创建 Web 报表
  11. Unity加载本地图片的2种方式
  12. gradient的几点认识转载
  13. 201521123080《Java程序设计》第2周学习总结
  14. npm私有仓库 配置verdaccio在docker环境
  15. linux优化之系统参数调优篇
  16. vs 2015 编译cocos2d-x-3.9
  17. python用zipfile模块打包文件或是目录、解压zip文件实例
  18. 关于 PHP 开放 enable_dl 函数利用 图片Disable_functions
  19. 【Python】实现对大文件的增量读取
  20. 神器与经典--DMVsinSQLServer

热门文章

  1. Python分词工具——pyhanlp
  2. z-score,beta,SE换算
  3. Docker容器(六)——创建docker私有化仓库
  4. 导入一个eclipse的java项目到IDEA报Cannot find JDK &#39;1.7&#39; for module &#39;TEST&#39;
  5. 【环境搭建与软件安装】windows系统基于Anaconda安装tensorflow-gpu
  6. [LeetCode] 251. Flatten 2D Vector 压平二维向量
  7. Eventbus的功能
  8. RDB和AOF持久化
  9. Influx Sql系列教程一:database 数据库
  10. 彩蛋(Python)-------都是细节