[Flask] 간단한 로그인 구현 (HTML, GET)
로그인을 할 수 있는 간단한 form을 보자.
<form action="/login" method="get">
<p>Enter Name:</p>
<p><input type="text" name="user_name" /></p>
<p><input type="submit" value="submit" /></p>
</form>
- method : HTTP method를 의미하고 여기서는 GET을 사용
- action : 버튼이나 입력을 했을 때 가고 싶은 페이지(특정 파일, 라우팅 경로)를 입력하면 됨
- name : 위 코드에서 보면 입력한 값이 user_name의 값으로 저장 됨
- input의 type이 submit이면 버튼이 생성됨
- 버튼을 누르면 위에서 입력한 변수 값(user_name)이 정해진 URL(action 값)로 전달 됨
- 최종 URL은 '현재 HTML페이지가 실행중인 URL/login?user_name=Sso' (method를 GET으로 지정했기 때문)
실제로 구현해보자.
test.html
html:5 입력 후 tab을 누르면 기본 HTML5 템플릿이 생성됨
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>로그인 TEST</title>
</head>
<body>
<form method="get" action="http://localhost:8080/login">
<center>
<h1>로그인</h1>
ID : <input type="text" name="id" /> <br />
PWD : <input type="text" name="pwd" /> <br />
<input type="submit" />
</center>
</form>
</body>
</html>

VScode에서 Live Server를 설치한 후 오른쪽 하단에 생기는 Go Live를 클릭하면 작성한 HTML을 실시간으로 수정해가며 확인할 수 있다.

Go Live를 클릭하여 실행 후 위와 같이 사용중인 포트 번호가 나온다.
이는 별도의 서버(Live Server)를 만들어서 해당 포트(5500)에 HTML을 보여주도록 한 것이다.
위 HTML 코드 설명에서 action이 /login일 경우 127.0.0.1:5500/login으로 가게될 것이다.
하지만 이 서버에는 HTML을 출력하기 위한 것으로 login 라우팅 경로가 있는 것이 아니다!
action에 전체 URL을 적지 않은 경우 해당 HTML 파일을 띄운 서버에 + 라우팅 경로가 된다.
따라서 다른 서버로 이동하기 위해 웹 서버를 띄울 login_test.py 파일을 보자.
login_test.py
from flask import Flask, jsonify, request
app = Flask(__name__)
@app.route('/login')
def login():
id = request.args.get('id')
pwd = request.args.get('pwd')
if id == 'Sso':
return_data = {'auth': 'success'}
else:
return_data = {'auth': 'failed'}
return jsonify(return_data)
if __name__ == '__main__':
app.run(host="127.0.0.1", port="8080")
여기서는 웹서버를 127.0.0.1:8080으로 띄웠고, /login 라우팅 처리를 해줬기 때문에
위 HTML action에서 '/login'이 아닌 'http://localhost:8080/login' 로 적어줘야 한다.
현재는 Live Server와 login_test.py에서 띄운 서버가 총 두개 떠져 있는 것이다!
Live Server에서 띄운 HTML에
id : Sso , pwd : 1234을 입력하고 전송해봤다.

위와 같은 결과가 출력된다.
위 URL을 보면 /login?id=Sso&pwd=1234로 전달 됨을 알 수 있다.
'WebFramework > [Flask]' 카테고리의 다른 글
| [Flask] Jinja2 사용법 (0) | 2023.01.20 |
|---|---|
| [Flask] Bootstrap 사용하기 (로그인) (0) | 2023.01.20 |
| [Flask] GET 사용법 (0) | 2023.01.20 |
| [Flask] httpi 설치 (0) | 2023.01.20 |
| [Flask] 정적, 동적 페이지 라우팅 (1) | 2023.01.19 |