Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flask werkzeug.routing.BuildError在尝试使用url\u重定向时出错_Flask - Fatal编程技术网

Flask werkzeug.routing.BuildError在尝试使用url\u重定向时出错

Flask werkzeug.routing.BuildError在尝试使用url\u重定向时出错,flask,Flask,这是导致错误的路由: @appHandler.route('/user/<int:userid>/', defaults = {'username' : None}) @appHandler.route('/user/<int:userid>/<username>/') def profile(userid, username): user = User.query.filter_by(id = userid).first() if use

这是导致错误的路由:

@appHandler.route('/user/<int:userid>/', defaults = {'username' : None})
@appHandler.route('/user/<int:userid>/<username>/')

def profile(userid, username):
    user = User.query.filter_by(id = userid).first()

    if user.username != username:
        redirect(url_for(profile(userid, user.username)))

    return 'Finally!'

我得到这个错误:

werkzeug.routing.BuildError
BuildError: ('Finally!', {}, None)

Traceback (most recent call last):
  File "/home/kevin/Code/python/flask/terminus/venv/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__
    return self.wsgi_app(environ, start_response)
  File "/home/kevin/Code/python/flask/terminus/venv/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app
    response = self.make_response(self.handle_exception(e))
  File "/home/kevin/Code/python/flask/terminus/venv/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/home/kevin/Code/python/flask/terminus/venv/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/kevin/Code/python/flask/terminus/venv/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/kevin/Code/python/flask/terminus/venv/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/home/kevin/Code/python/flask/terminus/venv/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/kevin/Code/python/flask/terminus/venv/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/kevin/Code/python/flask/terminus/app/routes.py", line 32, in profile
    redirect(url_for(profile(userid, user.username)))
  File "/home/kevin/Code/python/flask/terminus/venv/lib/python2.7/site-packages/flask/helpers.py", line 312, in url_for
    return appctx.app.handle_url_build_error(error, endpoint, values)
  File "/home/kevin/Code/python/flask/terminus/venv/lib/python2.7/site-packages/flask/app.py", line 1641, in handle_url_build_error
    reraise(exc_type, exc_value, tb)
  File "/home/kevin/Code/python/flask/terminus/venv/lib/python2.7/site-packages/flask/helpers.py", line 305, in url_for
    force_external=external)
  File "/home/kevin/Code/python/flask/terminus/venv/lib/python2.7/site-packages/werkzeug/routing.py", line 1620, in build
    raise BuildError(endpoint, values, method)
BuildError: ('Finally!', {}, None)

仅供参考,
userid=13
username=sdfsdf
user.username=rohitrk


帮个忙就好了。谢谢

url\u for
字符串
作为其第一个参数(它是端点的名称,最常见但并不总是函数名)和url参数或查询字符串值的关键字参数。尝试:

url_for('profile', userid=userid, username=user.username)
您的情况是,
profile
在调用它的第二个实例时失败(当您在
url\u中调用它时,返回
'Finally'
。这意味着您正在调用:

url_for('Finally')

实际上,这导致了
构建错误

我觉得我错过了这一点,非常抱歉。谢谢你的快速回答:)
url_for('profile', userid=userid, username=user.username)
url_for('Finally')