1-1에서 GET방식으로 데이터를 전달받고 동적으로 html을 구성하는 방법을 알아봤다.

이번 포스트에서는 POST 방식으로 데이터를 전달하는 테스트를 해보고자 한다.


~/webDev/flask01/templates/login.html 수정하기

msg 변수가 존재한다면 화면에 출력

<html>
        <form method="POST" >
                <p>ID: <input name="id" type="text" /> </p>
                <p>PW: <input name="pw" type="password" /><p/>
                <button type="submit"> login </button>
        </form>

        {% if msg != '' and msg != None %}
                {{msg}}
        {% endif %}
</html>

~/webDev/flask01/templates/login_success.html 생성

로그인 성공한 사용자의 id를 출력하기 위한 코드

<html>
        <h1>Hi {{id}}</h1>
</html>

~/webDev/flask01/app.py 수정

GET으로 /login에 접근하면 쿼리스트링에서 msg값을 msg변수에 할당하고 login.html과 msg를 함께 랜더링

POST로 /login에 접근하면 request body에서 id, pw값을 찾고 id, pw 변수에 할당
id,pw가 인가된 사용자라면 login_success.html과 id로 랜더링
비인가된 사용자라면 에러 메시지와 함께 login.html로 전달

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

@app.route('/')
def hello_world():
    return 'Hello World!'

@app.route('/login', methods=['GET'])
def login_get():
    msg = request.args.get('msg')
    print("msg: ",msg )
    return render_template('login.html', msg=msg)

@app.route('/login', methods=['POST'])
def login_post():
    id = request.form.get('id')
    pw = request.form.get('pw')

    if id == 'student' and pw == 'student1234':
        return render_template('login_success.html', id=id)
    else:
        msg = 'either ID or PW is wrong '
        return redirect(url_for('login_get', msg=msg))

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

결과

'웹 해킹 코스 > 과제' 카테고리의 다른 글

3-1(로그인 케이스)  (0) 2023.11.09
2-2 DB를 사용한 회원가입, 로그인  (0) 2023.11.02
2-1 php와 DB연결  (0) 2023.11.02
1-3 CSS를 사용하여 로그인 페이지 꾸미기  (0) 2023.10.29
1-1 WAS 서버 만들기  (0) 2023.10.26

+ Recent posts