English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Flask HTTP 메서드

HTTP 프로토콜은 월드 와이드 웹 데이터 통신의 기본입니다. 이 프로토콜은 지정된 URL에서 다양한 데이터를 검색하는 방법을 정의합니다.

다음 표는 다른 HTTP 메서드를 요약합니다 -

번호메서드설명
1GET데이터를 암호화되지 않은 형태로 서버로 전송합니다. 이는 가장 자주 사용되는 메서드입니다.
2HEADGET과 동일하지만, 응답 본문이 없습니다
3POSTHTML 양식 데이터를 서버로 전송하는 데 사용됩니다. POST 메서드로 수신된 데이터는 서버에서 캐싱되지 않습니다.
4PUT목표 자원의 모든 현재 표현을 업로드된 내용으로 대체합니다
5DELETEURL에서 주어진 모든 목표 자원의 모든 표현을 제거합니다

기본적으로, Flask 라우팅은 GET 요청에 응답합니다. 그러나 route() 장식자에 메서드 매개변수를 제공하여 이 기본 설정을 변경할 수 있습니다.

URL 라우팅에서 POST 메서드를 사용하는 데를 보여주기 위해, 먼저 HTML 양식을 생성하고 POST 메서드를 사용하여 양식 데이터를 URL에 전송합니다.

다음 스크립트를 파일에 저장하세요: login.html

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : ko.oldtoolbag.com
# Date : 2020-08-08
<html>
 <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
     <title>Flask HTTP 요청 메서드 처리</title>
 </head>
    <body>
       <form action="http://localhost:5000/login" method="post">
          <p>이름 입력:/p>
          <p><input type="text" name="name" value=""/></p>
          <p><input type="submit" value="제출" /></p>
       </form>
    </body>
 </html>

현재 Python shell에서 다음 스크립트를 입력하세요。

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : ko.oldtoolbag.com
# Date : 2020-08-08
from flask import Flask, redirect, url_for, request
 app = Flask(__name__)
 @app.route('/success/<name>')
 def success(name):
     return 'welcome %s' % name
 @app.route('/login, methods = ['POST', 'GET'])
 def login():
     if request.method == 'POST':
         user = request.form['name']
         return redirect(url_for('success', name=user))
     else:
         user = request.args.get('name')
         return redirect(url_for('success', name=user))
 if __name__ == '__main__':
     app.run(debug=True)

개발 서버가 실행되면 브라우저에서 login.html을 열고 텍스트 필드에 이름(예:) maxsu )을 클릭 제출.

양식 데이터는 <form> 태그의 action 속성으로 지정된 URL에 제출됩니다.

http://localhost:5000/login은 login() 함수에 매핑됩니다. 서버가 POST 메서드를 통해 데이터를 수신했기 때문에, 양식 데이터에서 'name' 매개변수의 값을 얻으려면 다음과 같이 합니다-

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : ko.oldtoolbag.com
# Date : 2020-08-08
user = request.form['name']

이는 URL에 유연한 부분으로 전달됩니다:/성공. 브라우저는 창에서 환영 메시지를 표시합니다.

login.html에서 메서드 매개변수를 GET으로 변경하고 브라우저에서 다시 열어보세요. 서버에 받은 데이터는 GET 메서드를 통해 수신됩니다. 'name' 매개변수의 값은 다음과 같은 방식으로 얻습니다 -

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : ko.oldtoolbag.com
# Date : 2020-08-08
User = request.args.get('name')

여기서 args는 딕셔너리 객체이며, 여러 가지 양식 매개변수와 그에 해당하는 값을 포함하고 있습니다. 이전과 같이 'name' 매개변수에 해당하는 값은 URL에 전달됩니다:/성공.