티스토리 뷰

반응형

 

Flask 는 redirect() 함수가 내장되어 있는데, 호출이 되면 응답을 반환하고 지정된 상태 코드를 사용하여 다른 대상으로 리다이렉트 한다. 또한 오류코드를 가지고 있는 abort() 함수도 있다.

 

파일명 : 11_redirect_and_errors.py

from flask import Flask, redirect, url_for, render_template, request, abort
app = Flask(__name__)

@app.route('/')
def index():
    return render_template('login.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)

 

파일명 : login.html

<html>
    <body>
        <form action = "/login" method = "POST">
            <p><h3>Enter userID</h3></p>
            <p><input type = 'text' name = 'username'/></p>
            <p><input type = 'submit' value = 'Login'/></p>
        </form>
    </body>
</html>

 

로그인 페이지에서 입력된 사용자명이 admin 이면 성공적으로 로그인 되었다는 메세지를 표기하고 그렇지 않으면 허가받지 않은 사용자라는 에러를 발생시킨다.

 

login 페이지에서 사용자명을 admin 으로 입력한다.

 

로그인이 성공했다는 메세지를 출력

 

사용자명이 admin 이 아닌 경우

 

Unauthorized 에러를 표시한다.

반응형
댓글
공지사항