Programming-[Backend]/Django (56) 썸네일형 리스트형 Django로 Pinterest 따라 만들기-8. Authentication, Decorator 활용, superuser 및 media 설정 1. Authentication 기능 구현 메인 페이지 접근 제한 로그인한 사용자만 메인 페이지에 접근할 수 있도록 아래 코드와 같이 접근 제한 코드를 추가한다. 특별할게 없고, 기존 코드를 if, else 문으로 감싸서 처리한다. django에서 제공해주는 requet.user.is_authenticated로 로그인 여부를 검사할 수 있다. 로그인이 되지 않았다면 HttpResponseRedirect를 이용해서 로그인 페이지로 보내도록 한다. views.py def hello_world(request): if request.user.is_authenticated: if request.method == 'POST': #기존 코드 생략 else: return HttpResponseRedirect(rever.. Django로 Pinterest 따라 만들기-7. Update, DeleteView 구현 1. UpdateView UpdateView 작성 updateView는 createView와 거의 동일하다. views.py 일부 form_class는 UserCreationView를 그대로 이요하였다. class AccountUpdateView(UpdateView): model = User context_object_name = 'target_user' form_class = UserCreationForm success_url = reverse_lazy('accountapp:hello_world') template_name = 'accountapp/update.html' update.html {% url %} 내부에 pk=user.pk로 로그인한 사용자 본인의 정보를 수정할 수 있도록 하였다. {% e.. Django로 Pinterest 따라 만들기-6. BootStrap 추가, DetailView 구현 1. BootStrap 추가 디자인을 수정하기 위해서 BootStrap을 추가한다. django에는 Django-Bootstrap4 라는 전용 라이브러리가 있다. 아래 링크에서 확인할 수 있다. https://django-bootstrap4.readthedocs.io/en/latest/index.html 우선 설치를 위해서 Installation 페이지에 적혀있는대로 아래 명령어를 터미널에 입력한다. pip install django-bootstrap4 그리고 설치가 됬다는 것을 알려주기 위해 settings.py의 INSTALLED_APPS에 bootstrap4를 추가한다. INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'djang.. Django로 Pinterest 따라 만들기-5. AccountApp : CBV, CreateView, Login, reverse_lazy 이제 Pinterest 서비스를 구현하기 위한 Account, Authentication, Profile, Article, Comment 등의 app 객체와 서비스를 만든다. 가장 기초가 되는 회원 정보인 AccountApp에서부터 시작한다. 1. 함수형 View(FBV)와 클래스형 View(CBV)의 차이 기존 HelloWorld 객체를 관리하는 View는 아래와 같이 함수로 정의하고, if 분기문을 통해서 CRUD, HTTP Method를 구분했었다. def hello_world(request): if request.method == 'POST': # 처리 로직 생략 return HttpResponseRedirect(reverse('accountapp:hello_world')) else: return.. Django로 Pinterest 따라 만들기-4. Model 생성, HTTP 통신 연습, Run Configuration 설정 1. Model 생성 model 생성은 각 패키지의 models.py 파일에서 설정할 수 있다. 만들어두었던 accoutapp의 models.py에 아래와 같이 작성해본다. accountapp/models.py from django.db import models # Create your models here. class HelloWorld(models.Model): text = models.CharField(max_length=255, null=False) 형태를 보면 DB에서 속성값을 정의하듯이 model을 정의한다. models.CharField로 문자열이 들어가는 필드를 정의하는데, 이름은 text, 길이는 255, nullable = false로 설정해주었다. Migrations 'python m.. Django로 Pinterest 따라 만들기-3. static, CSS 설정 1.HTML에 CSS 작성 화면을 꾸며주기 위해서 HTML의 태그들에 style을 적용한다. BOOTSTRAP 및 Google Font도 link로 적용한다. header.html Pragmatic nav1 nav2 nav3 nav4 head.html footer.html 공지사항 제휴문의 서비스 소개 Pragmatic 2. CSS static 파일로 변경하기 static 형태의 css 파일로 분리해내어 편리하게 관리할 수 있도록 변경한다. HTML의 태그들에 class를 부여한다. footer.html 공지사항 | 제휴문의 | 서비스 소개 Pragmatic header.html Pragmatic nav1 nav2 nav3 nav4 이렇게 적용 후, 루트 디렉토리/static/ 경로로 디렉토리를 생성하고.. Django로 Pinterest 따라 만들기-2.git 관리, HTML 구조 생성(include, extends, block) 1. Git 세팅 git 연결은 대부분 아는거라, 그냥 개인적으로 연결만 하자. 다만, django 프로젝트에서 gitignore해야되는 파일들의 기본적인 리스트에 대해서 알아놓자. gitignore 프로젝트 최상단에 .gitignore 파일을 만들고, 아래 링크의 github에 올라와있는 gitignore 리스트를 붙여넣기 하면된다! https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore 추가로 가상환경 구성요소인 venv는 git에 연동할 필요가 없으므로 위 그림처럼 추가해준다. django-environ : 환경 설정 정보 숨기고, gitignore에 추가하기 django 프로젝트는 프로젝트마다 고유의 SECRET_KEY 값.. Django로 Pinterest 따라 만들기-1.프로젝트 생성 및 세팅, 기본 구조 만들어보기 인프런 강의를 정리하는 글이다. 인스타그램처럼 이미지를 보여주고, 사용자들과 소통할 수 있는 SNS 서비스인 Pinterest를 따라만들면서 django 프레임워크를 학습한다. Front는 HTML, CSS, JavaScript를 사용하고, Back은 MariaDB, NGINX, django, docker를 사용한다. 마지막으로 AWS를 이용하여 배포까지 해본다. 1. 프로젝트 생성 및 설치 프로젝트 생성, 기본 세팅 pycharm IDE를 이용하여 Pure python 프로젝트를 생성한다. 만약 Pure Python이 아니라 Django로 프로젝트를 생성한다면 아래 과정을 거칠 필요가 없다. Pycharm에서 알아서 django startproject와 가상환경 설정을 해준다. --- 이 프로젝트는 d.. 이전 1 ··· 4 5 6 7 다음