전체 글 (33) 썸네일형 리스트형 Django와 Axios를 이용한 좋아요 구현하기 이번엔 Django와 axios를 이용해 좋아요 기능을 구현해보자 Like라는 모델은 각각 Post와 User의 1:N 관계이다. class Like(models.Model): post = models.ForeignKey(Post, on_delete=models.CASCADE, related_name='%(class)s_post', null=True, blank=True) user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='%(class)s_user', null=True, blank=True) 디테일 페이지로 들어왔을 때 해당 글의 좋아요를 클릭할 수 있다. 좋아요 버튼 클릭과 동시에 해당 글의 좋아요 수가 변경되고 좋아요 버튼의.. Django CBV 기반 CRUD 만들기 장고 ClassBaseView 기반으로 crud 만들기 이번에는 장고의 클래스 뷰만 이용해서 crud_app(게시판)을 만들어 보려 한다. 아래에는 crud_app 의 조건들이다 모델 - Post 제목 내용 생성일 생성자 수정일 수정자 좋아요 사용 여부 기능 게시글 목록 조회 게시글 상세 조회 게시글 생성 게시글 수정 게시글 삭제 게시글 좋아요 * 좋아요는 AJAX 처리(JS - axios 라이브러리 사용) 조건 CBV 기반의로 작성 게시글은 작성자만 수정, 삭제가 가능 게시글 좋아요는 사용자별 1번 가능 중복 Template include 사용 1. ListView 일단 게시글들의 리스트들이 보이는 페이지 list_page가 필요하다. list_page는 비교적 간단하게 구현이 가능하다. class P.. 프로젝트 회고(2) 저번 포스팅에 이어 프로젝트 진행 중 기능 구현에 어려움을 겪은 점들에 대한 이야기이다. 이번 프로젝트의 메인 기능 중 하나인 예약 시스템이다. 예약 시스템은 만들어 보고 싶은 기능이기고 해서 전적으로 내가 맡아서 기능 구현을 해야 했다. 모델링부터 시작해서 로직까지 완성해야 했다. 처음에는 어떻게 시작해야할지 감이 없었다. 그러다 예약 시스템이라고 거창한게 아니라 장고의 CRUD를 이용한 로직일 뿐이라는 것이라 생각하니깐 어느정도 구상이 나왓다. class Reservation(models.Model): #Reservation model relationship studycafe = models.ForeignKey(StudyCafe, on_delete=models.SET_NULL, related_name.. 프로젝트 회고(1) 이번 포스팅은 첫 번째 포스팅이자 지난 협업 프로젝트(3인)를 돌아보는 포스팅이다. 프로젝트의 시작은 어떤 프로젝트를 할 것인가, 어떤 컨셉의 웹 사이트를 목적으로 할 것인가였다. 결국 스터디카페를 이용하는 사람들을 대상으로 한 웹사이트를 만들기로 결정했다. 스터디카페 예약 웹 사이트를 목표로 정한 뒤 기능 별 리스트를 나열해봤다. 프로젝트가 끝난 시점에서 완성된 기능도 있고 구현하지 못한 기능도 보인다. 지금 보니 규모에 맞지 않게 기능을 너무 많이 잡은듯하다. 하지만 좋은 시도였다고 생각한다. 아무튼 기능 리스트업 완료 후 DB 모델을 기획, 설계를 시작하였다. DB 모델 설계하는 일은 가장 골치아픈 일 중 하나였다. DB 다이어그램 등 DB 구조를 쉽게 볼 수 있는 방법이 있었지만 초기에는 일단 엑.. Django 프로젝트 구조 django 프로젝트 구조 config 폴더 프로젝트 설정 파일과 웹 서비스 실행을 위한 파일이 들어 있다. 이 폴더 이름은 django-admin startproject 명령을 사용해 프로젝트를 만들 때 정해진 것이며 꼭 config라는 이름을 사용할 필요는 없다. urls.py 특정 기능을 수행하기 위해 접속하는 주소를 URL이라고 하고 이를 설정해 주는데, 그 설정을 이 파일에 기록한다. wsgi.py 웹 서비스를 실행하기 위한 WSGI 관련 내용이 들어있다. 특별히 변경할 일은 거의 없다. manage.py 장고의 다양한 명령어를 실행하기 위한 파일이다. 임의로 변경하지 않도록 주의해야 한다. setting.py BASE_DIR 프로젝트 루트 폴더, 설정 파일이나 py파일 등에서 프로젝트의 루트 .. Django Deploy django_Deploy 도커로 환경을 구축해두면 ec2 에서도 바로 배포가 가능하다. 여기선 git을 이용한 기본적인 배포로 진행하였다. docker-compose 도커 실행과 관련된 옵션들을 정리하고 간편히 실행. 컴포즈 파일은 yaml 을 이용하여 작성한다. docker-compose란 이미지를 실행하는 설정을 담는다고 이해하면 된다. (여러 컨테이너를 사용할 경우 매우 유용하다.) docker-compose 설치 sudo curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose sudo chmod +x /usr/.. Django - docker django_Docker 배포를 하기 위해 먼저 도커의 개념을 알고 있어야 한다. 도커란? 컨테이너를 기반한 가상화 플랫폼이다. 컨테이너란? 격리된 프로세스라고 이해할 수 있다. 시스템으로부터 프로세스를 격리해 독립된 환경을 만든 것(가상화) 컨테이너 VS VM VM 자체 OS를 포함 → 하드웨어 리소스를 많이 잡아먹는다. 물리적 하드웨어 계층에서 hypervisor를 통해 가상머신의 리소르를 분리한다. (하이퍼바이저란 VM을 구동하는 소프트웨어이다.) 컨테이너 컨테이너는 운영체제 수준에서 가상화 → 격리된 환경에서 프로세스로 돌아간다. 도커의 장점 이미지를 구축해두고 이를 어디에서나 사용할 수 있다. 서버 환경에 맞춰 매번 세팅하는 것이 아닌, 어떠한 환경에서도 돌아가는 서버세팅을 가능하게한다. 스케일.. Django AWS 연동 AWS란? 여러 클라우드 기반의 서비스를 제공 서비스 운영에 필수적인 파일 저장, 서버 세팅, 데이터 관리 등등 IAM 리소스에 대한 접근 권한을 제어하는 서비스 S#FullAccess 권한을 주는 IAM 생성(상황에 맞춰 FullAccess 가 아닌 권한을 주는 IAM을 생성해 권한 조정도 가능하다.) S3 Simple Storage Service 클라우드 스토리지 제공 서비스(이미지, 로그, 정적파일 등을 손쉽게 저장 가능) django에서 파일을 S3로 업로드가 가능하다. 컴퓨터에서 이미지를 저장하는 방식은 컴퓨터 저장공간을 많이 쓸 수 밖에 없고, 여러 서버의 상테를 동일하게 유지하기 어렵다. S3에 이미지 저장 -> 장고에서 해당 url 저장 퍼블릭 엑세스를 전체 차단하고, cloudfront .. 이전 1 2 3 4 5 다음