본문 바로가기

django

(9)
Django Admin 커스텀 Django Admin 커스텀 매뉴얼 목적 💡 장고 관리자 커스텀을 보다 쉽게 진행을 위해 매뉴얼화 합니다. 간단한 요약 장고 관리자 커스텀 관련 내용 장고 관리자 커스텀 관련 전반적인 내용이 담겨있습니다. 문서 내용 목록 Admin에 모델 등록하기 관리자 페이지에 모델을 등록하는 방법 커스터마이징 옵션 관리자 페이지의 커스텀 옵션별 정리 커스터마이징 메소드 관리자 페이지의 메소드별 사용 방법 CSS, JavaScript 재정의 관리자 페이지의 CSS, JavaScript 사용자 지정 추가 필드에 커스텀 위젯 적용 관리자 페이지에서 사용하는 필드(fields)의 커스텀 위젯 적용 방법 Admin Temlate 재정의 관리자 페이지 사용자 지정 Template 사용 방법 Admin 목록 페이지(ListVi..
Django ORM ORM이란? ORM(Object-relational Mapping)은 데이터 베이스와 객체지향 프로그래밍 언어 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법이다. 원래 데이터베이스 서버의 어떤 데이터를 조회, 추가, 수정, 삭제 등을 할 때는 sql이라는 언어를 사용해야 한다. 그런데 sql을 사용하지 않고 각 언어 그대로를 활용해서 sql 코드를 만들어내는 라이브러리가 있다. 그걸 ORM 이라고 한다. 장고에서는 Django Model 이 장고의 ORM이다. Model Manager 데이터 베이스 질의 인터페이스를 제공한다. 기본 Manager로써 모델클래스.object 를 제공한다. Model Manager를 통해서 해당 모델 클래스의 DB 데이터를 추가, 조회, 수정, 삭제가 가능하다. Qu..
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..
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 ..