@app.route('', method=['GET'])
def user_info(user_name):
pass
def 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('//user_info', method=['GET'])
def user_info(user_name):
pass
def sign_in(user):
"""
some code
"""
return redirect(url_for(user_info, user_name=user))
这样就对啦,url_for接受的第二个参数是endpoint函数的传入参数