본문 바로가기
웹 기초/Flask, Server, Cloud, AWS

Flask : API 생성 (GET, POST)

by 후닝훈 2021. 6. 30.
반응형

API 메소드 소개

GET

→ 통상적으로 데이터 조회(Read)를 요청할 때 예) 영화 목록 조회

→ 데이터 전달 : URL 뒤에 물음표를 붙여 key=value로 전달

→ 예: google.com?q=북극곰

 

POST

→ 통상적으로!데이터 생성(Create), 변경(Update), 삭제(Delete) 요청 할 때

→ 예) 회원가입, 회원탈퇴, 비밀번호 수정

→ 데이터 전달 : 바로 보이지 않는 HTML body에 key:value 형태로 전달

 

더 많은 HTTP 요청 메소드

 

HTTP 요청 메서드 - HTTP | MDN

HTTP는 요청 메서드를 정의하여, 주어진 리소스에 수행하길 원하는 행동을 나타냅니다. 간혹 요청 메서드를 "HTTP 동사"라고 부르기도 합니다. 각각의 메서드는 서로 다른 의미를 구현하지만, 일부

developer.mozilla.org

 

GET 요청 API 만들기

1. import 항목에 request, jsonify 를 추가한다.

from flask import Flask, render_template, request, jsonify

 

2. 아래와 같은 코드를 추가한다.

@app.route('/test', methods=['GET'])
def test_get():
   title_receive = request.args.get('title_give')
   print(title_receive)
   return jsonify({'result':'success', 'msg': '이 요청은 GET!'})

 

3. GET 요청 확인 Ajax 코드는 아래와 같다. 웹 브라우저의 콘솔 창에서 확인하자.

$.ajax({
    type: "GET",
    url: "/test?title_give=봄날은간다",
    data: {},
    success: function(response){
       console.log(response)
    }
  })

 

4. 결과

- 파이참에서 봄날은 간다 라는 글귀가 출력된 것을 확인할 수 있다.

- 이는 웹브라우저에서 ajax를 통해 받은 글을 서버에서 받아 print 한 것이다.

 

POST 요청 API 만들기

1. 아래와 같은 코드를 추가한다.

@app.route('/test', methods=['POST'])
def test_post():
   title_receive = request.form['title_give']
   print(title_receive)
   return jsonify({'result':'success', 'msg': '이 요청은 POST!'})

 

2. POST 요청 Ajax 코드는 아래와 같다.

$.ajax({
    type: "POST",
    url: "/test",
    data: { title_give:'봄날은간다' },
    success: function(response){
       console.log(response)
    }
  })

 

3. 결과

 

4. Internal server error

- Ajax 코드에서 title_give2로 호출하였기에 에러가 발생.

- internal server error는 app.py에서 발생하는 오류이다.

반응형

댓글