Flask url_for如何生成动态的endpoint

来源:互联网 发布:淘宝经营类目的优势 编辑:程序博客网 时间:2024/06/04 18:25

先上错误示范

@app.route('<string:user_name>', method=['GET'])def user_info(user_name):    passdef sign_in(user):    """    some code    """    user_name = user    return redirect(url_for(user_name))

注: user_name是一个变量

问题出现啦,当sign_in执行到redirect的时候,报错:werkzeug.routing.BuildError


后来发现原因在于,redirect函数接收的是一个endpoint,而一个endpoint需要通过修饰函数定位才能找到。并且修饰函数中的定位需要跟函数名一致。
说的有点麻烦,上正确的代码就看明白啦

正确示范

@app.route('/<string:user_name>/user_info', method=['GET'])def user_info(user_name):    passdef sign_in(user):    """    some code    """    return redirect(url_for(user_info, user_name=user))

这样就对啦,url_for接受的第二个参数是endpoint函数的传入参数

0 0
原创粉丝点击