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 |