【Flask】 python学习第一章 - 3.0 正则转换和错误捕捉
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 "页面不见了"
最新文章
- 响应式图片srcset学习
- Using Recursive Common table expressions to represent Tree structures
- 拼图游戏(js,C#,java三种语言)
- js中 map 遍历数组
- 关于UltraISO打开iso文件后只有部分文件问题
- Linux进程切换代码分析
- spring字符编码设置
- 为什么android的R类要定义成16进制
- 转:MFC网络编程学习
- DevExpress XtraReports 入门四 创建 Web 报表
- Unity加载本地图片的2种方式
- gradient的几点认识转载
- 201521123080《Java程序设计》第2周学习总结
- npm私有仓库 配置verdaccio在docker环境
- linux优化之系统参数调优篇
- vs 2015 编译cocos2d-x-3.9
- python用zipfile模块打包文件或是目录、解压zip文件实例
- 关于 PHP 开放 enable_dl 函数利用 图片Disable_functions
- 【Python】实现对大文件的增量读取
- 神器与经典--DMVsinSQLServer
热门文章
- Python分词工具——pyhanlp
- z-score,beta,SE换算
- Docker容器(六)——创建docker私有化仓库
- 导入一个eclipse的java项目到IDEA报Cannot find JDK &#39;1.7&#39; for module &#39;TEST&#39;
- 【环境搭建与软件安装】windows系统基于Anaconda安装tensorflow-gpu
- [LeetCode] 251. Flatten 2D Vector 压平二维向量
- Eventbus的功能
- RDB和AOF持久化
- Influx Sql系列教程一:database 数据库
- 彩蛋(Python)-------都是细节