스파르타 웹개발종합반 여덟째 날 일지(4-1~7)

Flask

서버, 클라이언트, API를 연결

2개의 프로젝트: 모두의 책리뷰, 나홀로 메모장

  1. 수업목표
  • Flask 프레임워크를 활용해서 API를 만들 수 있다.
  • '모두의책리뷰' API를 만들고 클라이언트에 연결한다.
  • '나홀로메모장' API를 만들고 클라이언트와 연결한다.
  1. Flask 시작하기

1) Flask 기초: Flask 서버를 만들 때(항상)

프로젝트 폴더 안에,
ㄴstatic 폴더 (이미지, css파일을 넣어둡니다)
ㄴtemplates 폴더 (html파일을 넣어둡니다)
ㄴapp.py 파일

이렇게 세 개를 만들어두고 시작

2) HTML 파일 불러오기

from flask import Flask, render_template
app = Flask(__name__)

## URL 별로 함수명이 같거나,
## route('/') 등의 주소가 같으면 안됩니다.

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

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

flask 내장함수 render_template를 이용합니다. 바로 이게 프레임워크의 위력!

*리마인드

  • GET, POST 방식
  • GET → 통상적으로! 데이터 조회(Read)를 요청할 때
    예) 영화 목록 조회
    → 데이터 전달 : URL 뒤에 물음표를 붙여 key=value로 전달
    → 예: google.com?q=북극곰

  • POST → 통상적으로! 데이터 생성(Create), 변경(Update), 삭제(Delete) 요청 할 때
    예) 회원가입, 회원탈퇴, 비밀번호 수정
    → 데이터 전달 : 바로 보이지 않는 HTML body에 key:value 형태로 전달

3) GET, POST 요청에서 클라이언트의 데이터를 받는 방법
(예를 들어, 클라이언트에서 서버에 title_give란 키 값으로 데이터를 들고왔다고 가정)

ⓐ GET 요청 API 코드

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

ⓑ GET 요청 확인 Ajax코드

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

ⓒ POST 요청 API코드

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

ⓓ POST 요청 확인 Ajax코드

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

구조 파악이 잘 되지 않아서 잘 와닿지가 않는다.
그림으로 구조를 그려서 처리 순서를 알려줬으면 더 좋았을 거 같다.
연습을 많이 해봐야 할 것 같다.

좋은 웹페이지 즐겨찾기