flask转换器转换器有以下三种:
(1)int:接受证书;
(2)float:同int,但是接受浮点数;
(3)和默认的相似,但也接受斜线。
转换器简单的调用如下:
# url_for通过视图函数名字找到对应视图的url路径
from flask import Flask,current_app,redirect,url_for
from werkzeug.routing import baseConverter
# 创建flask的应用对象
# __name__表示当前的模块名字
# 模块名,flask以这个模块所在的目录为总目录,默认这个目录中的static为静态目录,templates为模板目录
app = Flask(__name__)
# 转换器类型有int,float,path
@app.route("/goods/") # 不加转换器类型,默认为普通字符串规则 (除了"/"的字符串)
def goods_detail(goods_id):
"""定义的视图函数"""
return "goods detail page %s"%goods_id
if __name__ == '__main__':
# 通过url_map可以查看整个flask的路由信息
print(app.url_map)
# 启动flask的程序
app.run(debug= True)
调用时输入网址:http://127.0.0.1:5000/goods/123
默认的转换器相对简单,可以构建自己的转换器来调用,这里需要调用Flask的werkzeug库,如:
from werkzeug.routing import baseConverter
构建方式如下图所示:
# current_app为app的全局代理人,功能上相当于app
# redirect跳转界面,可以指定跳转到哪个界面
# url_for通过视图函数名字找到对应视图的url路径
from flask import Flask,current_app,redirect,url_for
from werkzeug.routing import baseConverter
# 创建flask的应用对象
# __name__表示当前的模块名字
# 模块名,flask以这个模块所在的目录为总目录,默认这个目录中的static为静态目录,templates为模板目录
app = Flask(__name__)
# 转换器类型有int,float,path
@app.route("/goods/") # 不加转换器类型,默认为普通字符串规则 (出了"/"的字符串)
def goods_detail(goods_id):
"""定义的视图函数"""
return "goods detail page %s"%goods_id
# 万能转化器的使用方法
# 1.定义自己的转换器
class RegexConverter(baseConverter):
def __init__(self,url_map,regex): # url_map是固定的参数,将整个列表进行带入,regex是写入的参数,添加进新的转换器类型
# 调用父类的初始化方法
super().__init__(url_map)
self.regex = regex
# 2.将自定义的转换器添加到flask的应用中
app.url_map.converters["re"] = RegexConverter
@app.route("/send/")
def send_ms(mobile):
return "hello world %s"%mobile
if __name__ == '__main__':
# 通过url_map可以查看整个flask的路由信息
print(app.url_map)
# 启动flask的程序
app.run(debug= True)
调用时可以输入网址:http://127.0.0.1:5000/send/world_id=87145
上面的正则表达式可以自己定义,这样使用就方便一下了。



