본문 바로가기

django

(13)
ERD 강의 정리(04.27) ERD Entity Relationship Diagram 고연차, 숙련개발자인지 판단하는 척도 하지만 일단 ERD를 잘 그려서 프로젝트를 어필하는 자리에 넣으면 좋은 무기가 될 수 있다. 그리고 언젠가는 해야하니 배우는 게 이득이다. 0. 잘 작성하는 법 연습 많이 하기 추상화,논리,비식별관계 등의 단어에 겁먹지 말라: 이론과 실제는 다르다. 자신이 관심있는 서비스나 영역의 ERD를 그려보면서 연습 1. PK/FK 프라이머리-키는 중복된 값을 가지지 않는다.(unique) 따라서 한 레코드를 대표하여 식별할 수 있는 값을 가진 필드이다. 대개 정수형태며, 번호 혹은 유일한 값을 지정함. 외래키는 다른 테이블의 PK를 참조하는 필드이다. 즉 타 테이블의 PK 데이터를 확보한다. PK/FK를 활용하지 않으면..
23.04.26 TIL - DRF 개인과제: model, view, serializer,url 오늘은... 페어프로그래밍 후 선발대 강의 정리를 하고 개인과제를 진행하였다. 개인과제에서 구현해야하는 사항은 DRF todo list CRUD를 구현하는 것, 사용자 회원가입/인증/로그아웃/탈퇴를 구현하는 것이다. 사용자의 인증은 조금 나중에 토큰을 이용해 구현해보기로 하고, 먼저 todo list 부터 구현해 보기로 했다. 1. todolists/models.py import time class TodoList(models.Model): class Meta: db_table = "todolist_table" title = models.CharField(max_length=50) is_complete = models.BooleanField(default=False) created_at = models...
23.04.25 TIL - 프로젝트 생성 및 기본설정(poetry) 요약: poetry설치, 사용. DRF, simplejwt, cors-headers,yasg 설치 및 초기설정 오늘은 개인과제를 위한 셋팅을 했다. 처음으로 poetry를 이용해 의존성관리 및 가상환경 설정을 하면서 django프로젝트를 만들어 보기로 했다. 1. Poetry 설치 및 사용 1-0. Poetry란.. Poetry는 파이썬 의존성 관리를 위한 툴이다. poetry.lock을 이용해 서로 다른 환경에서도 동일한 패키지를 유지할 수 있고, 자동으로 poetry.toml과 poetry.lock을 갱신하고, 직접 패키지를 만들고(build) 배포(publish)할 수 있는 등 다양한 기능을 제공하며 가상환경도 함께 관리할 수 있는 아주 편리한 툴이다. 기존에 사용하는 requirements.txt..
장고와 MVT(23.04.25) 장고의 캐치프레이즈 마감을 맞추고 싶은 완벽주의자를 위하여 장고는 2005년 부터 시작된 파이썬 오픈소스 웹 프레임워크/풀 스택 프레임 워크로, 처음에는 뉴스 피드를 관리하기 위한 컨텐츠 관리 시스템으로부터 발전하였다. 장고의 장점 fully loaded. 웹개발에 필요한 다양한 도구들을 대부분 내장하고 있다. - 인증, 컨텐츠 관리, 사이트 맵, RSS 피드, 메일 보내기, form 등등 Admin(backoffice) - 재고변경, 계정복구/탈퇴, 통계 등을 위한 관리자 사이트가 이미 만들어져 있고 관련 API도 만들기 좋다. 많은 기능을 보유한 풀스택 프레임워크 강력한 ORM, 많은 사용자/커뮤니티 빠른 개발과 손쉬운 보안 MVT 패턴 JS의 MVC패턴과 유사하지만 이름이 다르다. Models: 데..
23.04.24 TIL - DRF: serialize, renderer, response 오늘 한 것 강의를 듣다가 궁금한 것이 생겨서 하루 꼬리에 꼬리를 물고 찾아다녔다. 아래 내용이 오늘자 탐색의 결과이다. 21:00 현재 선발대 강의 내용 정리중 문제: test.py에서 response 까보기 문제상황은 다음과 같다. test.py에서 회원가입 API를 검증하려고 한다. 회원가입 API는 유효한 입력일 때 DB에 유저 데이터를 생성하고 응답에 생성된 유저데이터를 함게 실어 보낸다. 나는 test.py에서 입력된 user의 email과 응답에 실려온 유저데이터의 email을 비교해ㅗ고자 한다. 시도 1. response를 parse 해보기 우리가 까보려고 하는 email값은 response에 존재하며 이는 serializer에 의해 직렬화된 데이터일 것이다. 왜냐하면 우리가 views.p..
23.04.18 TIL (장고에서 PUT 쓰기) 오늘 한 것 DRF 1강 수강 및 정리(링크) 페어프로그래밍 장고에서 PUT 쓰기 def view(request): if request.method=="PUT": data_a=requset.PUT.get("data_a","") 위와 같이 Django에서 PUT을 POST 처럼 써서 데이터를 뽑아내려하면 아래와 같은 에러를 볼 수 있다. 'WSGIRequest' object has no attribute 'PUT' 시도: 헉 장고에서는 PUT 못쓰나바 그럼 걍 포스트 쓰지 모 delete는 get 쓰고 put은 그냥 post 쓰고 실제 DB동작만 맞추면 되지 ㄹㅇㅋㅋ 그렇게 팀 프로젝트를 마치고서 피드백 시간때 회초리 맞았다(비유적 표현이다). 장고에서 PUT을 처리하지 못하는 어쩌구, DRF도 PUT이 ..
23.04.14 TIL(django웹서비스에 image업로드 구현) 오늘 한 것: 팀 프로젝트 기능 구현, 오류 찾고 고치기 1. 프로필 페이지에 이미지 넣기 사용자가 이미지를 업로드 할 수 있는 기능을 만들기로 하였다. 사용자가 올리는 이미지나 파일들은 ImageField, 혹은 FileField에 경로가 저장된다. 여기에는 정확히는 해당 파일/이미지의 경로만이 저장된다. 먼저 Pillow라는 이미지처리 패키지를 설치한다. pip3 install Pillow settings.py에서 다음과 같은 설정을 추가한다. MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 사용자가 올리는 파일들은 media 디렉토리 안에 저장된다. 이를 위해 media 경로를 지정해주는 것이다. 이후 이미지 업로드를 사용할 a..
23.04.12 TIL 오늘 한 것 팀장 위임받기-내 레포지토리로 옮기기 regex를 이용해 회원가입 기능 보완하기 로그인 기능 만들기 PR조율 및 오류 해결 레포지토리 옮기기 팀장분이 건강 문제로 잠시 떠나셨다. 그래서 이제부터 내가 선장이다. 근데 콜라보레이터를 받긴했는데, 떠난 분의 레포지토리서 계속 PR을 하는건 뭔가 모양새가 영 아니다. 최대한 커밋로그를 살리면서 내 계정으로 옮겨보자. 1. 포크 최신화 원본 레포지토리에 있던 main이 아닌 브랜치이 중요한 변경사항들을 일단 모두 merge하여 main에 반영하였다. 그렇게 하고서 이전에 포크했던 내 계정의 포크 레포지토리를 sync fork로 최신화 하였다. 2. git pull 이후 이전에 원격 레포지토리와 연결되어있던 로컬 레포지토리 main 브랜치에서 변경사항..