Flask - 重定向 url_for 错误

-1 投票
2 回答
26686 浏览
提问于 2025-04-17 19:03

我在我的Flask应用程序中遇到了错误,下面是相关代码。

@@app.route('/')
.....

return redirect(url_for('nextPage'),id=DBTable.id)


@app.route('/<path:id>')
@login_required
def nextPage(id):
return render_template('page2.html')               

Error - 
---------------------------------------------------------------------------
File "C:\Python27\lib\site-packages\werkzeug\routing.py", line 1607, in build
raise BuildError(endpoint, values, method)
BuildError: ('nextPage', {}, None)
<SocketIOServer fileno=116 address=0.0.0.0:5000>: Failed to handle request:
request = POST /landingPage HTTP/1.1 from ('127.0.0.1', 50287)
application = <flask.app.Flask object at 0x0000000002643B70>

请帮我解决这个问题。

2 个回答

3

试着用这段代码

from flask import *

app = Flask(__name__)

@app.route('/')
def index():
    return redirect(url_for('random', id="blah blah"))

@app.route('/<id>')
def random(id):
    return id

if __name__ == '__main__':
    app.run(debug=True)

然后告诉我你有没有遇到什么错误。

6

除了那些明显的语法错误,问题应该通过把你传给路由的参数放在 url_for 这个块里面来解决。

@app.route('/')
def index():
    # ...
    return redirect(url_for('nextPage', id=DBTable.id))

@app.route('/<id>')
def nextPage(id):
    # ...
    return render_template('page2.html')

撰写回答