路由:
路由传参route("/index/<userid>") def index(userid),参数数据类型的指定route("user/<int:user_id>"),请求方式指定method,request.method
路由转换器:继承Baseconvertor
默认转换器-6个(default=string,any.path,int,float,uuid)
自定义转换器-定义class RegexConverter(Baseconvertor),添加到转换器列表app.convertors["re"]=RegexConverter
to_python-重新定义url参数的在视图函数中的数据类型
to_url-重定向之前保证url_for传递到url中的参数能被正确匹配
# 定义 添加 使用
class RegexConverter(BaseConverter):
# regex= "[0-9]{6}"
def __init__(self,url_map,*args):
super().__init__(url_map)
self.regex = args[0] class ListConverter(BaseConverter):
def __init__(self,url_map,*args):
super().__init__(url_map) def to_python(self,value):
return value.split(',') # [1,2,3,4]
def to_url(self, value):
result = ','.join(str(v) for v in value)
return result app.url_map.converters['re']=RegexConverter
app.url_map.converters['list']=ListConverter @app.route("/index/<list('(\\d+,?\\d$)'):user_id>")
def index(user_id):
return "Welcome to %s' PKM!"%user_id @app.route("/login")
def to_url_test():
return redirect(url_for('index',user_id='[1,2,3,4]'))