Just Fighting

API 만들기 본문

Web/백엔드

API 만들기

yennle 2022. 1. 19. 18:19
728x90

GET, POST 방식을 이용해서 데이터를 주고 받는 것을 연습해보자.

GET : 데이터 조회

POST : 데이터 생성, 변경, 삭제

 

<GET 요청 API 코드>

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

 

<GET 요청 확인 Ajax 코드>

$.ajax({
	type: "GET",
	url: "/test?title=hello",
	data: {},
	success: function (response) {
		console.log(response)
	}
})

 

<POST 요청 API 코드>

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

 

<POST 요청 확인 Ajax 코드>

$.ajax({
	type: "POST",
    	url: "/test",
    	data: {title: 'Hello!'},
    	success: function (response) {
    		console.log(response)
	}
})

 

 

 

<적용하기>

 

<app.py>

from flask import Flask, render_template, jsonify, request

app = Flask(__name__)

@app.route('/')
def home():
    return render_template('index.html')


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


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


if __name__ == '__main__':
    app.run('0.0.0.0', port=5000, debug=True)

 

<index.html>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Flask 연습</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script>
        $(document).ready(function () {
            show_get();
        });

        function show_get() {
            $.ajax({
                type: "GET",
                url: "/test?title=hello",
                data: {},
                success: function (response) {
                    console.log(response)
                }
            })
        }

        function show_post() {
            $.ajax({
                type: "POST",
                url: "/test",
                data: {title: 'Hello!'},
                success: function (response) {
                    console.log(response)
                }
            })
        }

    </script>
</head>
<body>
    <h1>This is My Home!</h1>
    <button onclick="show_post()">post</button>
</body>
</html>

 

index.html이 로드되면 자동으로 show_get()함수가 실행되고

"title=hello"이 app.py의 test_get()으로 넘어가 json형식의 데이터를 리턴하게 한다.

그 받은 데이터는 response를 매개변수로 들어와 콘솔에 찍히도록 하였다.

 

 

 

post 버튼을 누르면 show_post() 함수가 실행되고

{ title : 'Hello!'} 가 test_post()로 넘어가 데이터를 이용할 수 있다.

그 데이터를 json형식으로 만들어 리턴하면, 그 데이터가 담긴 로그를 콘솔에 찍히도록 하였다.

 

728x90

'Web > 백엔드' 카테고리의 다른 글

[Flask] MongoDB에 데이터 저장하고 받아오기  (0) 2022.02.21
Flask 시작하기  (0) 2022.01.19
MongoDB와 Python 연결하기  (0) 2022.01.16
Comments