IWonderWhy

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

路由:

路由传参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]'))

  

posted on 2019-01-14 21:25  IWonderWhy  阅读(90)  评论(0编辑  收藏  举报