Django 5

프론트와 연결하기 (3) - 이미지 로드 시 404 에러 해결

프론트엔드인 리액트와 백엔드인 장고를 연동할 때 리액트의 build 배포 파일들을 이용해보려고 프로젝트 초기부터 여러 문서들을 찾아보며 고군분투 했었다. 그랬다가 결국 그 방법을 사용하는 것은 멈춰두고 기능들을 먼저 구현하다가 얼마 전에 프로젝트를 모두 끝내고 서버에 등록하려고 다시 시도해보던 상황이었다. ( 자세한 과정은 이전 글 참고 > https://edorrr.tistory.com/18 ) 프로젝트 완성 당시에 배포 버전에서 발생하던 오류는 크게 두 가지였다. [1] 글쓰기를 마친 후 띄우는 서평 확인 페이지와 서평 목록을 볼 수 있는 서평 공간 페이지가 흰 창으로 뜨는 오류 [2] 웹페이지에서 사용하는 이미지 파일들의 404 not found 오류 먼저 첫 번째 오류는 프론트엔드 담당 팀원이 해..

[Django] 한 프로젝트 내에서 다른 앱의 모델 사용하기

프로젝트를 여러 명이 함께 진행하다보니 각 팀원이 서로 다른 앱을 구현하게 되는데, 이 때 다른 앱의 모델 필드를 외래키로 사용하거나 모델 자체를 내 앱에서 사용하는 경우 어떻게 사용하면 되는지에 대한 내용을 다뤄보려고 한다. 편의상 내 앱의 이름은 'myapp', 다른 팀원의 앱 이름은 'yourapp'으로 서술하도록 하겠다. 모델들의 내용은 다음과 같다. # myapp/models.py class Review(models.Model): ... userId = models.ForeignKey(User, on_delete=models.CASCADE) ... # yourapp/models.py class User(models.Model): ... Review 모델에서는 User 모델을 외래키로 사용하지만 ..

스터디/Web 2022.02.09

[Django] 모델 수정하고 삭제하기

프로젝트를 진행하다가 초기에 작성했던 모델 내용을 수정하고, 데이터를 모두 삭제해야 할 이슈가 발생해서 관련 내용을 수행하고 글로 정리해보려고 한다. (1) 모델 수정하기 기존에 작성했던 모델의 내용은 다음과 같다. # app/models.py class Review(models.Model): reviewId = models.IntegerField(primary_key=True)# 삭제할 내용 userId = models.ForeignKey(User, on_delete=models.CASCADE) bookId = models.CharField(max_length=30) reviewTxt = models.TextField() 이 내용에서 서평 제목, 서평 평점, 서평 작성날짜 필드를 추가하고 PK인 rev..

스터디/Web 2022.02.08

[Django] DRF : Serializer 기본 사용법, 유효성 검증

참고 : https://www.django-rest-framework.org/api-guide/serializers/ 장고 레스트 프레임워크(Django REST Framework)를 이용해 REST API 환경을 구축하다보면 Serializer를 거의 필수적으로 사용하게 된다. 하지만 Serializer가 어떤 개념인지 잘 와닿지 않아서 Serializer에 대해 공부하고 알게 된 것들을 정리해보려고 한다. (1) Serializer란? 쿼리셋이나 모델 인스턴스 같은 복잡한 데이터들을 네이티브 파이썬 데이터 타입으로 변환하여 json, xml 등의 컨텐츠 타입으로 쉽게 렌더링할 수 있게 한다. 데이터를 직렬화하는 Serializer는 역직렬화 기능 또한 제공하기 때문에 들어오는 데이터를 검증한 후에 분..

스터디/Web 2022.01.30

프론트와 연결하기 (1) - 장고/리액트 연동

우리 프로젝트는 백엔드로 장고(Django)를 사용하고 프론트엔드로 리액트(React)를 사용한다. 때문에 둘을 연동하는 과정이 필요한데, 이번 주제에서는 이 과정을 다뤄보려고 한다. 먼저 우리 프로젝트의 상황을 설명해야 하겠다. 우리 프로젝트는 프론트엔드를 담당하는 팀원과 백엔드를 담당하는 팀원이 나눠져있다. 즉, 한 개발환경에서 리액트와 장고를 동시에 사용하지 않는다. 때문에 리액트와 장고를 연동할 수 있는 방법을 먼저 살펴보자. (1) 장고 -> 리액트 : json 객체로 데이터 보내기 이 방법은 장고와 리액트 연동을 알아볼 때 가장 많이 나왔던 내용이다. 장고의 Django REST Framework(DRF) 를 이용해 장고의 모델을 json 객체로 얻을 수 있다. 이 과정을 완료하면 웹페이지에서..