Framework 51

DRF Response()

Response : 응답 : 클라이언트에서 받은 요청을 조건에 맞게 보내는 것 아래 코드에서도 보면 꼭 마지막에 응답을 보낸다. class ArticleDetailView(APIView): def get(self, request): article = get_object_or_404(Article, id=id) serialize = ArticleSerializer(article) return Response(serialize.data, status=status.HTTP_200_OK) 그럼 이 응답은 늘 이런 것들만 고정적으로 보내주는 걸까? 사실 이것에 대해 잘 몰랐는데, Response에 ctrl + click을 해주면 Response에 대해 간략하게 설명해주는 창으로 넘어가진다. 아래는 class Re..

Framework/Django 2023.06.16

FBV 와 CBV 차이점

FBV(Function-Based-View) 함수 기반 View 코드를 간단히 쓸 수 있음 그러나 코드를 확장, 재사용하는 등 유지 보수에 있어 좋지 않음 조건문으로 HTTP 메소드 구분해야하는 단점 CBV(Class-Based-View) 클래스 기반 View GET, POST 등 HTTP 메소드에 따른 처리 코드를 작성할 때 if 함수 대신에 메소드 명으로 코드의 구조가 깔끔하다. 다중상속 같은 객체지향 기법을 활용해 Generic View, Mixin Class 등을 사용 코드의 재사용과 개발 생산성을 높여준다. View 안에서 같은 코드를 반복적으로 사용하지 않는다. 403, 404, 500 에러 핸들링에는 CBV를 이용하지 않고 FBV를 이용한다.

Framework/Django 2023.06.16

DRF Docs 입문

Docs에 대한 중요성을 나날이 인지하면서 결국 Docs에 대해 꾸준히 공부해야겠다는 마음을 가졌다. 이번에는 Docs에 대해 공부해보았다. 공부한 사이트 Home - Django REST framework www.django-rest-framework.org DRF를 쓰는이유 웹 브라우저 가능한 API는 개발자들에게 큰 유용성을 가져다 줍니다. OAuth1a 및 OAuth2용 패키지를 포함한 인증 정책. ORM 및 비 ORM 데이터 소스를 모두 지원하는 직렬화. 사용자 정의가 가능합니다. 보다 강력한 기능이 필요하지 않다면 일반 기능 기반 보기를 사용하기 광범위한 문서와 훌륭한 커뮤니티 지원. Mozilla, Red Hat, Heroku, Eventbrite 등 세계적으로 유명한 기업에서 사용하고 신뢰..

Framework/Django 2023.06.15

API POST 코드 공부 (쿠팡)

API를 사실 다른 분이 만드는 것만 계속 바라봤는데, 이번에 코드 공부를 좀 해보았다. import hmac import hashlib import requests import json from time import gmtime, strftime REQUEST_METHOD = "POST" # 요청 방식 설정 DOMAIN = "https://api-gateway.coupang.com" # API 도메인 URL = "/v2/providers/affiliate_open_api/apis/openapi/v1/deeplink" # 요청을 보낼 엔드포인트의 경로 # Replace with your own ACCESS_KEY and SECRET_KEY ACCESS_KEY = "xxxxxxxx-xxxx-xxxx-xxx..

Framework/Django 2023.06.13

[트러블 슈팅] 인코딩 에러

이번 코드에러는 다음과 같다. 오류 이슈를 보고 다음과 같이 생각했다. 1. dotenv에서 문제가 생긴 건가? 2. DecodeError인 것을 보니 파이썬 용어로 인코딩, 디코딩 하는 과정이 문제인가? 1번의 경우 혹시나 dotenv가 깔려있지 않은데 내가 .env를 생성해서 그런 걸까?라는 생각을 했다. 하지만 dotenv는 정상적으로 깔려 있었고, lock과 toml에도 큰 문제는 없었다. 2번의 경우가 사실 가능성은 크다고 생각했다. 그래서 모든 주석들을 꼼꼼히 확인했는데 큰 이상이 없었는데, dotenv에 주석을 달았던 게 생각났다. 이 주석을 지우니.. cp949 error를 벗어날 수 있었다. dotenv에는 주석 달기 금지

Framework/Django 2023.06.11

[트러블 슈팅] 환경설정..

tensorflow 관한 문제가 팀원들에게 끊이지 않게 이어져 오고 있었다. tensorflow-io-gcs-filesystem 호환이 큰 문제인데, MacOS와 Windows의 환경 차이가 심하게 크다. 그런데 tensorflow를 최신 버전으로 다운받다 보니 마찬가지로 io-gcs도 그 호환에 맞게 다운받아야 하는데, 이것이 파이썬 3.8.10에서 다운되지 않는 것이었다. 그럼 다른 파이썬 버전에선 다운이 될까? 이 상황에서, 팀장님은 윈도우와 맥 버전 모두 다운로드가 되는 웃긴 경우도 있었다. 도대체 무슨 경로길래 그런 황금코스를 탔는지 부러울 따름이다. 아무튼 결론만 말하자면, io-gcs 최신 버전은 윈도우에서 깔리지 않는다. 그래서 io-gcs의 버전을 낮추자니, tensorflow와 호환이 ..

Framework/Django 2023.06.09

poetry 기본 명령어 모음

참고 사이트 POETRY 가상환경 설정하기 window vscode terminal에 입력 curl -sSL https://install.python-poetry.org | python 터미널에 설치된 경로 복사 새로만들기 후 경로 추가 - 저장 poetry init : pyproject.toml 생성 poetry install : poetry.lock 생성 poetry shell : 가 sw-ing.tistory.com 기본적인 용어 정리 poetry init : pyproject.toml 생성 poetry install : poetry.lock 생성 poetry shell : 가상환경 실행 poetry env list : 가상환경 실행 확인 >>> .venv (Activated) poetry add ..

Framework/Django 2023.06.07

Poetry 설치 및 기초 세팅

Poetry는 의존성 관리 및 파이썬 내 패키징을 위한 툴이다. 프로젝트가 의존하고 있는 라이브러리들을 관리(설치, 업데이트 등)해준다. 자세한 내용은 공식문서 설치 방법 osx / linux / bashonwindows은 아래 curl url을 터미널에 입력해서 설치하면 된다. Poetry bin 디렉토리에 설치되고, 유닉스에서 위치는 $HOME/.poetry/bin 이다. curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python 설치 후 shell에 환경 변수를 설정해주고, shell을 닫았다가 열면 poetry를 터미널에 쳤을 때 읽을 수 있게 된다. vi .zshrc # 파일에 아래 c..

Framework/Django 2023.06.07

데이터 관계 모델 정리

두 번의 팀 프로젝트를 통해서 느낀 것은 응용이 부족했던 점이 가장 크고, 경험이 없기 때문이 컸지만 기본기에서 가장 부족했던 것이 바로 모델 관계 정리였다. 그래서 이번엔 지난 튜터님들의 실강을 복습하면서 다시금 정리해보게 되었다. PK(Primary Key) Table에서 반드시 하나만 존재 (유일) 그래서 row의 값을 고유하게 식별 가능 대개 정수형태, 번호 혹은 유일한 값 FK(Foreign Key) 다른 테이블의 PK를 참조하는 컬럼 타 테이블 PK 데이터 확보! PK와 FK가 없을 시, 데이터가 중복되면서 불필요한 데이터들을 계속 가지게 된다. 그렇기 때문에 한 테이블 안에서 대표성을 띄고 있는 PK와 FK를 적극적으로 이용해줘야 한다. OneToOneField : 예전 카카오 프로필은 Us..

Framework/Django 2023.05.18

DRF 심화과정 4주차

요약 : 공식문서가 답이다!!!!! CHECKLIST restful한 api 설계를 할 수 있다. 미디어 파일과 스태틱 파일에 대해 이해한다. 게시글 모델과 조회/업로드를 위한 serializer를 만들 수 있다. 이미지를 포함한 게시글 기능을 개발할 수 있다. 포스트맨으로 백엔드 개발을 하면서 테스팅을 할 수 있다. drf에서 댓글 기능을 개발할 수 있다. drf에서 좋아요 기능을 개발할 수 있다. drf에서 follow 기능을 개발할 수 있다. many-to-many 관계를 설정하는 경우와 방법, 그리고 related_name의 사용방법을 이해한다. 1. RESTFUL한 API 설계 내용이 너무 많아서 일단 메인페이지를 예시로. # Urls.py from django.urls import path f..

Framework/Django 2023.04.23