코드스닛펫에서 만둘어둔 예제코드를 가져온다.
JQuery import를 써뒀다.
은행이 고객을 받기 위해서 만들어 놓은 창구처럼
서버도 클라이언트 요청을 받기 위해서 만들어놓는 창구이다.
은행도 창구에 어떤 규칙이 있다.
민증 지참,입금을 하려면 입출금 창구로 가세요 등
마찬가지로,이 API도 규칙이 있다.그리고 그에 해당하는 주소가 존재한다.
그거를 하나하나 직접 만들어 보겠다.
API에서 우리가 배울 종류는 두가지이다.

예를 들면,데이터를 내가 건들지 않고 예를 들면 어제 들어온 주문목록 갖고 올때
예를 들면,회원가입 할 때
하나씩 만들고 요청해보도록 하자.
서버에 뭔가를 요청할 때는 ajax콜을 이용한다.
API만들기👉클라이언트에서 Ajax로 콜 해보기
코드스니펫 GET 요청 API코드 복사해서
app.py파일
@app.route('/')
def home():
return render_template('index.html')
이 코드 아래에 붙여 넣는다.
@app.route('/test', methods=['GET'])
def test_get():
title_receive = **request**.args.get('title_give')
print(title_receive)
return **jsonify**({'result':'success', 'msg': '이 요청은 GET!'})
그리고 기본코드에 request,jsonify를 더 추가 시켜준다.
from flask import Flask, render_template,request,jsonify
app = Flask(__name__)
이제 확인을 할것인데,GET 요청 Ajax코드를
(아까 서버에서 받은 html이 담긴)브라우저에가서 console창에 붙여넣는다.
(⭐어떻게보면 클라이언트 사이드다.)
$.ajax({
type: "GET",
url: "/test?title_give=봄날은간다",
data: {},
success: function(response){
console.log(response)
}
})
{msg: '이 요청은 GET!', result: 'success'}
이렇게 나오는데 console.log 때문에 msg로 적어둔게 찍혔다.
response는 서버에서 내려주는 값이다.
서버에 가서 보면
def test_get():
title_receive = request.args.get('title_give')
print(title_receive)
return jsonify({'result':'success', 'msg': '이 요청은 GET!'})
이렇게 되어있는데'result':'success', 'msg': '이 요청은 GET!'
이 내용물을 response에 담아와서 찍힌 것이다.
app.py는 내가 만들어둔 창구이다.

type은 GET이고 url은 /test

url: "/test?title_give=봄날은간다",
GET요청은 물음표로 데이터를 들고 간다.
👉title_give라는 이름으로 봄날은간다 라는값을 가져왔다.
title_receive = request.args.get('title_give')
title_give로 갖고온 값을 가져와봐라는 뜻이다.
title_receive = '봄날은 간다' 라고 가져온다면
title_receive안에 들어올것이다.
print(title_receive)
그리고 그 변수가 프린트 된다.
그리고 그 프린트는

여기에 찍힌다.
그리고 나서
return jsonify({'result':'success', 'msg': '이 요청은 GET!'})
값을 내려준다.
🙋(고객)Ajax로 콜을 하면
👉Ajax로 가져온 값을
👉👨💼API(창구)에서 response(처리)를한다.
👉🙋고객이 response를 console.log로 확인을 한다.
코드스니펫 POST요청 API코드를 GET 요청 API코드 아래에 붙여넣는다.
GET과 마찬가지의 과정으로 진행된다.
그런데,console창에서 data: { title_give2:'봄날은간다' },
로 바꾸면 어떻게 됄까.
(INTERNAL SERVER ERROR) 서버쪽에서 에러가 났다는 뜻이다.
그러면 app.py에서 에러를 확인해보자.
werkzeug.exceptions.BadRequestKeyError: 400 Bad Request: The browser (or proxy) sent a request that this server could not understand.
KeyError: 'title_give'
분명 title_give로 값으로 뭔가를 찾으려고 했는데 title_give가 없다.
은행으로 따지면 주민등록번호가 없어요 라는 에러하고 똑같은 뜻이다.
그래서 둘의 이름을 꼭 맞춰줘야한다.