왕초보 시작반 4주차

Flask

Flask 프레임워크: 서버를 구동시켜주는 편한 코드 모음. 서버를 구동하려면 필요한 복잡한 일들을 쉽게 가져다 쓸 수 있게 해준다.

기본코드

from flask import Flask
app = Flask(__name__)

@app.route('/')
def home():
   return 'This is Home!'

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

Flask 서버를 만들 때는 항상,

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

세 개를 만들고 시작하기

API

API의 역할은? <자세히>

  1. API는 서버와 데이터베이스에 대한 출입구 역할을 한다.
    : 데이터베이스에는 정보들이 저장되기 때문에 모든 사람들이 이 데이터베이스에 접근할 수 있으면 안 되므로 API는 이를 방지하기 위해 허용된 사람들에게만 접근성을 부여해준다.

  2. API는 애플리케이션과 기기가 원활하게 통신할 수 있도록 한다.
    : 여기서 애플리케이션이란 우리가 흔히 알고 있는 스마트폰 어플이나 프로그램인데 API는 애플리케이션과 기기가 데이터를 원활히 주고받을 수 있도록 돕는 역할을 한다.

  3. API는 모든 접속을 표준화한다.
    API는 모든 접속을 표준화하기 때문에 기계/ 운영체제 등과 상관없이 누구나 동일한 액세스를 얻을 수 있다. 쉽게 말해, API는 범용 플러그처럼 작동한다고 볼 수 있다.


또 API는 은행의 창구와 비슷한데,
같은 예금 창구에서도 개인 고객이냐 기업 고객이냐에 따라 처리하는 것이 다른 것처럼,

클라이언트가 요청 할 때에도, "방식"이 존재합니다.
HTTP 라는 통신 규약을 따른다. 클라이언트는 요청할 때 HTTP request method(요청 메소드)를 통해, 어떤 요청 종류인지 응답하는 서버 쪽에 정보를 알려준다.

여기선 GET, POST 방식에 대해 배워본다.

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

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


GET요청 API 코드

/ python app.py
@app.route('/test', methods=['GET'])
def test_get():
   title_receive = request.args.get('title_give')
   print(title_receive)
   return jsonify({'result':'success', 'msg': '이 요청은 GET!'})
/ javascript
$.ajax({
    type: "GET",
    url: "/test?title_give=봄날은간다",
    data: {},
    success: function(response){
       console.log(response)
    }
  })
  
  ajax의 url을 보면 /test뒤에 ?가 붙고 key=value의 모습을 나타냄

숙제와 비교

페이지를 열면 ajax로 콜을 하고 > API에서 orders의 값을 내려준다 > 후에 response가 실행되어 페이지에 표시


POST요청 API코드

/ python app.py
@app.route('/test', methods=['POST'])
def test_post():
   title_receive = request.form['title_give']
   print(title_receive)
   return jsonify({'result':'success', 'msg': '이 요청은 POST!'})
/ javascript
$.ajax({
    type: "POST",
    url: "/test",
    data: { title_give:'봄날은간다' },
    success: function(response){
       console.log(response)
    }
  })

숙제와 비교

이름, 수량, 주소, 번호 입력 후 주문하기를 누르면 > ajax로 콜을 하고 > 데이터를 API로 보낸 뒤 이를 데이터 베이스(order)에 저장 > 저장 후 주문이 완료되었습니다! 창 팝업

              

좋은 웹페이지 즐겨찾기