본문 바로가기

About my life/Development Studies

[Server] Post 요청 튜토리얼

728x90
반응형
이번 글은 POST 요청 기초를 공부해볼 것입니다.

GET 요청 기초를 보고 싶으신 분들은 이전 글을 확인해주세요.

2023.11.26 - [STUDY] - [Server] GET 요청 튜토리얼

 

가장 먼저 파이썬 코드를 작성합니다.

from flask import Flask, request, render_templete

@app.route('/')
def home():
    return render_templete('post_test.html')
    
@app.route('/submit', method=['POST'])
def submit():
    username = request.form['username']
    password = request.form['password']
    
    print(f"Received data - Username: {username}, Password: {password}")
    
    return f"Received data - Username: {username}, Password: {password}"
    
if __name__ == "__main__":
	app.run(debug==True)

 

간단하게 설명하자면,

1. 누군가가 루트 URL로 접속할 경우 post_test.html 파일을 랜더링해서 보여준다.

2. post_test.html 파일에서 /submit URL로 POST 요청을 할 경우 username, password를 리턴해준다.

 

아래는 html 코드입니다.

<!DOCTYPE html>
<html>
<head>
    <title>POST Request Test</title>
</head>

<body>
    <h2>사용자 정보를 입력해주세요.</h2>
    <form action='/submit' method='post'>
        <label for="username">사용자명:</label>
        <input type="text" id='username' name="username" required<br>
        
        <label for="password">비밀번호:</label>
        <input type="password" id='password' name="password" required<<br>
        
        <input type='submit' value="제출">
    </form>
</body>
</head>

 

사용자가 제출 버튼을 누를 경우 form action 에 설정된 엔드포인트에 따라 post 요청을 보내게 됨.

Fig 1. localhost 접속

 

사용자가 localhost 에 5000번 포트로 접속하면 그림 1과 같은 html 을 받을 수 있다.

Fig 2. 정보 입력

 

사용자가 정보를 입력하고 제출 버튼을 누르면 /submit 으로 POST 요청을 하게 됨.

Fig 3. Received data

 

/submit 엔드포인트로 POST 요청을 받은 서버는 data 를 return 해준다. 


이번에도 마찬가지로 기본적인 개념을 잡고 가려고 한다.

 

Web Brower:

HTML 코드를 누가 읽고 어떻게 처리하는 지 궁금해서 알아봤다.

 

먼저 웹 브라우저는 HTML 문서를 받아들이고 이를 파싱하는 과정을 거친다고 한다.

이 과정에서 HTML 문서가 트리 구조로 변환되고  이를 문서 객체 모델 (DOM) 이라 한다고 한다.

 

두 번째로 웹 브라우저는 CSS 스타일 시트를 파싱하여 스타일 규칙을 읽고, 각 요소에 스타일을 적용한다. 이후에는 레이아웃을 계산하여 각 요소가 화면 상에서 어디에 위치할지 결정한다.

 

세 번째로 브라우저는 DOM 트리와 CSS 및 레이아웃 정보를 활용해서 화면에 웹 페이지를 랜더링합니다.

 

네 번째로 HTML 문서에 포함된 자바스크립트 코드는 브라우저 화면에 동적인 효과를 추가하고 사용자와 상호작용하는데 사용된다. 자바스크립트는 DOM을 변경하거나 이벤트를 처리하는 등의 작업 수행 가능.

 

마지막으로 웹 브라우저는 사용자의 상호작용에 대응하여 사용자의 입력(클릭, 스크롤 등) 을 감지할 수 있음.


HTML:

기본적인 정의나 이런 부분들은 위에 남겨뒀던 링크를 참고하시면 될 것 같습니다.

 

form 태그는 웹 브라우저가 서버에 특정 요청을 하도록 하기 위한 태그이다. 위 예시와 같이 작성할 경우 action에 있는 엔드포인트에 method에 있는 POST 방식으로 요청하도록 되는 것이다.

 

input 태그에서 type 중 password는 사용자에게 글자가 보이지 않도록 텍스트를 작성하는 것이라고 한다. 

 

input 태그에서 required 는 필수적으로 입력하도록 하고 싶을 경우 사용한다고 한다.


728x90
반응형