본문 바로가기

기초공부/WEB

[Flask]빠르게 시작하기 - HTTP 메소드

http 메소드

http는 웹 어플리케이션에서 사용하는 프로토콜로, url 접근에 대해 몇 가지 다른 방식을 제공한다. 기본적으로는 GET방식으로 제공되지만, route()데코레이터에 methods 인자를 제공하면 다른 방식으로 변경할 수 있다.
다음은 그에 대한 예시이다.

# python 파일
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']) # route option 추가
def login() :
    if request.method == 'POST' : # 만약 POST 방식이면
        user = request.form['nm'] # form의'nm'인 변수의 값을 user에 대입한다
        return redirect(url_for('success', name = user)) # url_for을 이용하여 리다이렉트 한다
    else : # 만약 GET 방식이면
        user = request.args.get('nm') # 전달되는 
        return redirect(url_for('success', name = user)) # url_for을 이용하여 리다이렉트 한다

if __name__=='__main__' :
    app.run()
<--html 파일-->
<!DOCTYPE html>
<html>
  <body>
    <form action="http://127.0.0.1:5000/login" method="post"> # 폼을 "http://~" 주소에 post 방식으로 전달한다
      <p>Enter name</p>
      <input type="text" name="nm" value=""><input type="submit" name="" value="submit">
    </form>
  </body>
</html>




그 외에도 다양한 메소드들이 있다.

GET가장 흔히 쓰이는 메소드로 서버에 리소스를 달라고 요청할 때 쓰인다
HEADGET처럼 동작하지만 헤더만을 돌려준다
POST서버에 입력 데이터를 전송한다. HTML폼을 지원한다
PUT서버에 문서를 쓴다.
DELETEURL에 해당하는 리소스를 삭제할 것을 요청한다
OPTIONS웹 서버가 어떤 종류의 메소드를 지원하는지 확인한다