Just Fighting
API 만들기 본문
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