본문 바로가기
개발/개발 일지

4주차 개발일지: Flask, POST, GET등

by 부산청년1 2022. 12. 19.

목차

    프레임워크와 라이브러리 

     

    *프레임워크: 일종의 프랜차이즈와 비슷한 개념, 창업을 한다고 했을 때 프랜차이즈처럼 메뉴, 디자인, 브랜드, 운영 방식 등 전부를 제공함. iOS 어플리케이션을 만든다면 개발자가 처음부터 끝까지 코딩하지 않고 애플의 프레임워크를 활용함. 애플에서는 통칭 Cocoa라고부름 

     

    *라이브러리: 타인이 만들어놓은 코드를 이용한다면 측면에서는 프레임워크와 같음. 프레임워크가 더 큰 개념임. 라이브러리와 코드들이 모여서 프레임워크가 됨 

      프로그래밍 언어 프레임워크, 라이브러리
    애플 Objective-C, Swift Cocoa(Ulkit, Appkit..) 
    구글 Java, Kotlin Android Framework
    Javascript Angular.js, React.js, Vue.js 

     

    프로그래밍 언어 프레임워크, 라이브러리
    Ruby Rails
    Java Spring
    Javascript Express.js
    Python Django

     

    Flask 패키지 

    Flask는 웹 어플리케이션 개발을 위한 파이썬 프레임워크이다. 파이썬의 프레임워크 중에 가장 유명한 것은 Django(장고)인데 너무 무겁고 기능이 많아서 복잡하다. 초보가 사용하기에는 가벼운 Flask처럼 가벼운 프레임워크가 띡이다.  

     

    2-1 과정

    1) 프로젝트 폴더안에 

    app.py 파일(Python파일 생성) 

    static 폴더 (이미지, css파일을 삽입)

    templates 폴더 (html파일을 삽입)-> index.html 파일 생성 

     

    2) Flask 패키지 설치: 설정> 파이썬 인터프리터 

      

     

    POST, GET방식

    *API: 클라와 서버 같은 서로 다른 프로그램에서 요청과 응답을 주고 받을 수 있도록 만든 체계임 

    *API에서 클라이언트-> 서버: 요청, 서버-> 클라이언트: 응답

    *클라->서버: 요청의 4가지 요소(CRUD)

    • Creat
    • Read
    • Update
    • Delete

    *CRUD요청은 각각의 주소를 가짐. 이렇게 주소가 생기면 너무 많아지고 관리하기 힘들어지며 버그가 발생할 수도 있음. 따라서 좀 더 체계적으로 API를 관리하기 위해 RESTful API 사회 운동이 일어남. 

    *RESTful API : 하나의 주소로 광리하고 어떤 요청을 보냈는지 스티커를 붙여 함께 전송함 

    • Creat : POST
    • Read : GET
    • Update : PUT/PATCH
    • Delete : DELETE

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

     

    <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는 통상적으로 데이터 생성(Create), 변경(Update), 삭제(Delete) 요청 할 때 예로 들면 회원가입, 회원탈퇴, 비밀번호 수정할 때임.  데이터 전달은 바로 보이지 않는 HTML body에 key:value 형태로 전달함 

     

    <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)
        }
      })

     

    JSON형식 

    *요청과 응답을 할 때는 데이터가 담길 수도 있기에 데이터를 넣을 수 있는 기능도 같이 개발함 

    *이 기능에는 여러 형식이 있으며 각 요청이나 응답마다 형식이 다르다면 이 형식을 처리하기 위한 코드를 또 구상해야하기에 비효율적임. 따라서 유명한 한 형식을 쓰기로 통합했고 이것이 JSON형식임

    *JSON형식: 이런 식으로 표기함 

    {
    	키1(KEY): 값1(VALUE)
        키2(KEY): 값2(VALUE)
    }

     

     

    ✅정리: 클라와 서버는 요청과 응답을 주고 받고, 그 때 필요한 데이터들은  JSON형식으로 주고 받는다. 

     

     

     

    댓글