English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Flask 클래스는 redirect() 함수를 가지고 있습니다. 호출할 때, 그것은 응답 객체를 반환하고 사용자를 지정된 상태 코드를 가진 다른 목적지로 리디렉션합니다.
redirect() 함수의 원형은 다음과 같습니다 -
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ko.oldtoolbag.com # Date : 2020-08-08 Flask.redirect(location, statuscode, response)
위의 함수에서 -
location 파라미터는 응답이 리디렉션되어야 하는 URL입니다. statuscode 파라미터는 브라우저의 헤더에 전송되며 기본적으로302。 response 파라미터는 응답을 인스턴스화하는 데 사용됩니다.
다음 상태 코드는 표준화되었습니다 -
HTTP_300_MULTIPLE_CHOICES HTTP_301_MOVED_PERMANENTLY HTTP_302_FOUND HTTP_303_SEE_OTHER HTTP_304_NOT_MODIFIED HTTP_305_USE_PROXY HTTP_306_RESERVED HTTP_307_TEMPORARY_REDIRECT
기본 상태 코드는302이는 '找到' 페이지를 나타냅니다.
다음 예제에서 redirect() 함수는 로그인 시도가 실패할 때 로그인 페이지를 다시 표시하는 데 사용됩니다.
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ko.oldtoolbag.com # Date : 2020-08-08 from flask import Flask, redirect, url_for, render_template, request # Flask 애플리케이션 초기화 app = Flask(__name__) @app.route('/') def index(): return render_template('log_in.html') @app.route('/login', methods=['POST', 'GET']) def login(): if request.method == 'POST' and request.form['username'] == 'admin' : return redirect(url_for('success')) return redirect(url_for('index')) @app.route('/success()) def success(): return 'logged in successfully' if __name__ == '__main__': app.run(debug=True)
Flask 클래스는 오류 코드를 가진 abort() 함수를 가지고 있습니다.
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ko.oldtoolbag.com # Date : 2020-08-08 Flask.abort(code)
code 매개변수는 다음 값 중 하나를 사용합니다 -
400 - 誤ったリクエスト에 401 - 認証されていないため 403 - 禁止されています 404 - 見つかりません 406 - 受け入れられません 415 - 불支持的メディ어タイプ용 429 - 요청이 많습니다
위의 코드의 login() 함수에 일부 미세한 수정을 합니다. "Unauthourized" 페이지를 다시 로그인 페이지를 다시 표시하는 대신 표시하려면 그것을 중지(401) 호출.
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ko.oldtoolbag.com # Date : 2020-08-08 from flask import Flask, redirect, url_for, render_template, request, abort app = Flask(__name__) @app.route('/') def index(): return render_template('log_in.html') @app.route('/login', methods=['POST', 'GET']) def login(): if request.method == 'POST': if request.form['username'] == 'admin': return redirect(url_for('success')) else: abort(401) else: return redirect(url_for('index')) @app.route('/success()) def success(): return 'logged in successfully' if __name__ == '__main__': app.run(debug=True)