Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.2k views
in Technique[技术] by (71.8m points)

python - "NameError: name 'redirect' is not defined" even though redirect is imported

I have this simple Flask 1.1.x app:

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)

I'm developing on a local server. When I attempt to access /donations in a browser, I get an Internal Server Error and the local server reports this error:

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

I don't understand why it's reporting redirect as undefined, since I am importing it and I'm calling it the same way the Flack Quickstart Guide does.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Could you replace return redirect(url_for('donate')) with return redirect('/donate') ?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...