파이썬/파이썬 플라스크20 ep 9. marshmallow 로 Python 에서 직렬화 / 비직렬화 처리하기 marshmallow로 직렬화와 비직렬화를 처리하기 전에 우리는 직렬화와 비직렬화가 무엇인지 알 필요가 있다. 직렬화란? 객체의 내용을 바이트 단위로 변환해 파일 or 네트워크를 통해 송수신이 가능하도록 만드는 것 비직렬화란? 직렬화된 파일을 다시 객체의 형태로 만드는 것 직렬화를 하는 이유? 시스템이 종료되어도 사라지지 않는 데이터이기에 메모리에만 상주되어 있는 객체 데이터를 영속화 해야할 때 사용됨 marshmallow Schema 클래스 dump_only : 역직렬화 중 건너뛸 필드, read_only(읽기 전용) load_only : 직렬화 중 건너뛸 필드, write_only(쓰기 전용) many : 오브젝트가 collection이면 True로 설정해야 객체가 리스트에 직렬화 된다 marshma.. 2022. 9. 11. ep 8. Flask-RESTful 로 Car CRUD api 구축하기 플러거블 뷰란? 플라스크는 데코레이터와 함수를 이용해 API를 작성하는데 이것을 함수 기반 뷰라고 한다. 하지만 django의 영향을 받아 만들어져 데코레이터를 이용하지 않는 view가 플러거블 뷰이다. 다음과 같이 /shop 주소로 GET 요청을 처리하는 api가 있다. 이를 플러거블 뷰로 변형시켜보면 아래와 같이 된다. 위에서 설명한 차이를 알 것 같지 않은가? 아래에 간단히 CRUD를 구현해보며, 좀 더 정확하게 알아보자 먼저 위처럼 코드 작업을 하기 위해서 다음과 같은 내용을 requirements.txt에 입력해주고, pip install -r requirements.txt 로 install 해준다. 이제 한번 동물들을 데리고 조회, 생성, 수정 삭제등 CRUD api를 구현해보겠다. app.p.. 2022. 8. 29. ep 7. 간단한 HTTP API 구축해보기 HTTP란? HTML과 같은 하이퍼미디어 문서를 전송하기위한 애플리케이션 레이어 프로토콜이다. 웹 브라우저와 웹 서버간의 커뮤니케이션을 위해 디자인 되었지만, 이 외의 목적으로도 사용될 수 있다. 여기서 프로토콜이란 컴퓨터와 컴퓨터 사이, 또는 한 장치와 다른 장치 사이에서 데이터를 원활히 주고받기 위하여 약속한 여러가지 규약을 뜻한다. 그렇다면 이 HTTP 개념은 알겠는데 어떻게 사용하는 걸까? 그것을 한번 알아보자. 바로 요청 메소드를 사용해 동작하게 된다. 이 메소드를 사용해 어떤 응답을 할 지 정해진다. 위에 보이는 메소드들이 바로 요청 메소드다 이걸 통해 소통을 한다 생각하면 편한데 간단하게 GET 메소드를 활용해 이해를 돕겠다. 만약 우리가 어떤 url에 접속한다고 하자. ex) naver.c.. 2022. 8. 24. ep 5. 관리자 페이지, 카테고리, 게시물 관리 관리자 페이지를 구현하기 앞서 관리자 페이지는 관리자만 접근할 수 있어야 함으로 다음과 같이 모델을 수정하자 is_staff 라는 테이블을 추가해 이 값이 True냐 False냐로 관리자인지 일반 유저인지 판별할 것이다. 다음으로 지금까진 앱을 직접 실행해 만든 코드들이 정상 작동하는지 확인했지만, 테스트 코드를 작성해 통과한다면, 코드를 리팩토링하는 방법으로 개발을 진행할 것이다. 이러한 과정을 통해 테스트를 통과하기 위한 최소한의 코드를 생성해 표준에 맞도록 리팩토링 해주는 개발을 테스트 주도 개발이라고 한다. 테스트 코드를 작성하기 위한 폴더와 파일을 생성해준다. 다음과 같이 코드를 짜주면 되는데, 먼저 다음과 같은 코드를 짜주기 전에 pip install BeautifulSoup4 명령을 입력해 .. 2022. 7. 29. 이전 1 2 3 4 5 다음