“NameError: name 'redirect' is not defined”即使重定向被导入

时间:2021-01-11 10:11:01

标签: python flask

我有这个简单的 Flask 1.1.x 应用程序:

from flask import Flask
from flask import redirect, render_template, url_for

app = Flask(__name__)


@app.route('/', methods=['GET'])
def index():
    return render_template("index.html")
    
@app.route('/donate', methods=['GET'])
def donate():
    return render_template("donate.html")

@app.route('/donations', methods=['GET'])
def donations():
    return redirect(url_for('donate'))


if __name__ == '__main__':
    app.run(host='localhost', port=8080, debug=True)

我正在本地服务器上开发。当我尝试在浏览器中访问 /donations 时,出现内部服务器错误并且本地服务器报告此错误:

ERROR in app: Exception on /donations [GET]
<trimmed>
    return redirect(url_for('donate'))
NameError: name 'redirect' is not defined

我不明白为什么它将 redirect 报告为未定义,因为我正在导入它并且我以与 Flack Quickstart Guide 相同的方式调用它。

1 个答案:

答案 0 :(得分:1)

您可以将 return redirect(url_for('donate')) 替换为 return redirect('/donate') 吗?